helloparthshah's picture
Adding email tools
5551656
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import os
__all__ = ['SendEmails']
class SendEmails:
dependencies = ['os']
inputSchema = {
"name": "SendEmails",
"description": "Writes and sends an email.",
"parameters": {
"type": "object",
"properties": {
"receiver_email": {
"type": "string",
"description": "The recipient's email address.",
},
"subject": {
"type": "string",
"description": "The email subject.",
},
"body": {
"type": "string",
"description": "The email body.",
},
},
"required": ["receiver_email", "subject", "body"],
}
}
def __init__(self):
self.sender_email = os.environ.get("EMAIL_ADDRESS")
self.sender_password = os.environ.get("EMAIL_PASSWORD")
def run(self, **kwargs):
receiver_email = kwargs["receiver_email"]
subject = kwargs["subject"]
body = kwargs["body"]
try:
msg = MIMEMultipart()
msg['From'] = self.sender_email
msg['To'] = receiver_email
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(self.sender_email, self.sender_password)
text = msg.as_string()
server.sendmail(self.sender_email, receiver_email, text)
server.quit()
return {"status": "success", "message": "Email sent successfully!"}
except Exception as e:
return {"status": "error", "message": str(e)}