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)}