Spaces:
Running
Running
| 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)} | |