
    Ng                         d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZmZ ddlmZ  G d	 d
e          Z G d de          ZdS )zSend Gmail messages.    N)MIMEMultipart)MIMEText)AnyDictListOptionalTypeUnion)CallbackManagerForToolRun)	BaseModelField)GmailBaseToolc                   4   e Zd ZU dZ edd          Zeed<    edd          Ze	ee
e         f         ed<    edd          Zeed	<    ed
d          Zee	ee
e         f                  ed<    ed
d          Zee	ee
e         f                  ed<   d
S )SendMessageSchemazInput for SendMessageTool..zThe message to send.)descriptionmessagezThe list of recipients.tozThe subject of the message.subjectNzThe list of CC recipients.cczThe list of BCC recipients.bcc)__name__
__module____qualname____doc__r   r   str__annotations__r   r
   r   r   r   r   r        h/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/tools/gmail/send_message.pyr   r      s6        $$5*  GS    !&-! ! !Bc49n    51  GS    +0%0+ + +BsDI~&'    ,151, , ,C%T#Y'	(     r   r   c                      e Zd ZU dZdZeed<   dZeed<   eZ	e
e         ed<   	 	 dded	eeee         f         d
edeeeee         f                  deeeee         f                  deeef         fdZ	 	 	 dded	eeee         f         d
edeeeee         f                  deeeee         f                  dee         defdZdS )GmailSendMessagez#Tool that sends a message to Gmail.send_gmail_messagenamezJUse this tool to send email messages. The input is the message, recipientsr   args_schemaNr   r   r   r   r   returnc                    t                      }|                    t          |d                     d                    t	          |t
                    r|n|g          |d<   ||d<   |0d                    t	          |t
                    r|n|g          |d<   |0d                    t	          |t
                    r|n|g          |d<   t          j        |                                          	                                }d|iS )	zCreate a message for an email.htmlz, ToSubjectNCcBccraw)
r   attachr   join
isinstancelistbase64urlsafe_b64encodeas_bytesdecode)selfr   r   r   r   r   mime_messageencoded_messages           r   _prepare_messagez!GmailSendMessage._prepare_message0   s     %HWf55666!YYZD-A-A'KrrtLLT")Y>!%B1E1E+O22B4!P!PL?"&)):c43H3H,SCCse"T"TL 2<3H3H3J3JKKRRTT''r   run_managerc                 >   	 |                      |||||          }| j                                                                                            d|          }|                                }	d|	d          S # t          $ r}
t          d|
           d}
~
ww xY w)zRun the tool.)r   r   me)userIdbodyzMessage sent. Message Id: idzAn error occurred: N)r8   api_resourceusersmessagessendexecute	Exception)r5   r   r   r   r   r   r9   create_messagesend_messagesent_messageerrors              r   _runzGmailSendMessage._runG   s    
	;!227BBTW2XXN!''))T77 
 (//11LDT0BDDD 	; 	; 	;9%99:::	;s   A8A; ;
BBB)NN)NNN)r   r   r   r   r#   r   r   r   r   r$   r	   r
   r   r   r   r   r8   r   rI   r   r   r   r!   r!   '   s        --$D#$$$W     ,=K'(<<< /3/3( (( #tCy.!( 	(
 U3S	>*+( eCcN+,( 
c3h( ( ( (8 /3/3;?; ;; #tCy.!; 	;
 U3S	>*+; eCcN+,; 78; 
; ; ; ; ; ;r   r!   )r   r1   email.mime.multipartr   email.mime.textr   typingr   r   r   r   r	   r
   langchain_core.callbacksr   pydanticr   r   $langchain_community.tools.gmail.baser   r   r!   r   r   r   <module>rP      s      . . . . . . $ $ $ $ $ $ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 > > > > > > % % % % % % % % > > > > > >    	   24; 4; 4; 4; 4;} 4; 4; 4; 4; 4;r   