
    hg                         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y)zSend Gmail messages.    N)MIMEMultipart)MIMEText)AnyDictListOptionalTypeUnion)CallbackManagerForToolRun)	BaseModelField)GmailBaseToolc                       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<   y
)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        j/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/tools/gmail/send_message.pyr   r      s    $*GS  !&-!Bc49n  1GS  +00+BsDI~&'  ,1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y)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               }|j                  t        |d             dj                  t	        |t
              r|n|g      |d<   ||d<   |'dj                  t	        |t
              r|n|g      |d<   |'dj                  t	        |t
              r|n|g      |d<   t        j                  |j                               j                         }d|iS )zCreate a message for an email.htmlz, ToSubject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6!YYZD-ArtLT")Y>!%B1E2B4!PL?"&)):c43HCse"TL 22<3H3H3JKRRT''r   run_managerc                    	 | j                  |||||      }| j                  j                         j                         j	                  d|      }|j                         }	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XN!!'')T7 
 (//1L/T0B/CDD 	;1%9::	;s   A&A) )	B2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#$T   ,=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      s8      . $ 9 9 > % >	 24;} 4;r   