[docs]classSendMessageSchema(BaseModel):"""Input for SendMessageTool."""body:str=Field(...,description="The message body to be sent.",)to:List[str]=Field(...,description="The list of recipients.",)subject:str=Field(...,description="The subject of the message.",)cc:Optional[List[str]]=Field(None,description="The list of CC recipients.",)bcc:Optional[List[str]]=Field(None,description="The list of BCC recipients.",)
[docs]classO365SendMessage(O365BaseTool):# type: ignore[override, override]"""Send an email in Office 365."""name:str="send_email"description:str=("Use this tool to send an email with the provided message fields.")args_schema:Type[SendMessageSchema]=SendMessageSchemadef_run(self,body:str,to:List[str],subject:str,cc:Optional[List[str]]=None,bcc:Optional[List[str]]=None,run_manager:Optional[CallbackManagerForToolRun]=None,)->str:# Get mailbox objectmailbox=self.account.mailbox()message=mailbox.new_message()# Assign message valuesmessage.body=bodymessage.subject=subjectmessage.to.add(to)ifccisnotNone:message.cc.add(cc)ifbccisnotNone:message.bcc.add(bcc)message.send()output="Message sent: "+str(message)returnoutput