[docs]asyncdefsend_email(self,to:str,subject:str,body:str,reply_to_message:Dict=None,headers:Dict=None)->Dict:"""Send an email"""try:server=awaitself.connect()msg=MIMEMultipart('alternative')msg['From']=self.emailmsg['To']=tomsg['Subject']=subject# Add custom headersifheaders:forkey,valueinheaders.items():msg[key]=value# Add reply headers if this is a replyifreply_to_message:msg['In-Reply-To']=reply_to_message['message_id']ifnotsubject.lower().startswith('re:'):msg['Subject']=f"Re: {subject}"# Detect if body contains HTMLif'<html>'inbody.lower()or'<p>'inbody.lower()or'<br>'inbody.lower():# HTML emailmsg.attach(MIMEText(body,'html'))else:# Plain text emailmsg.attach(MIMEText(body,'plain'))server.send_message(msg)server.quit()return{"success":True,"message_id":msg.get('Message-ID'),"error":None}exceptExceptionase:logger.error(f"Error sending email: {str(e)}")return{"success":False,"message_id":None,"error":str(e)}