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