Spaces:
Running on Zero
Running on Zero
| import smtplib, os, json, time | |
| from email.message import EmailMessage | |
| from ..config import OUTBOX | |
| def run(params: dict) -> dict: | |
| host = os.environ.get("SMTP_HOST"); user = os.environ.get("SMTP_USER") | |
| pw = os.environ.get("SMTP_PASS"); port = int(os.environ.get("SMTP_PORT", "587")) | |
| if not all([host, user, pw]): | |
| # queue to outbox | |
| f = OUTBOX / f"email_{int(time.time()*1000)}.json" | |
| f.write_text(json.dumps(params, indent=2)) | |
| return {"status": "queued", "outbox": str(f)} | |
| msg = EmailMessage() | |
| msg["From"] = user; msg["To"] = params["to"]; msg["Subject"] = params.get("subject", "") | |
| msg.set_content(params.get("body", "")) | |
| with smtplib.SMTP(host, port) as s: | |
| s.starttls(); s.login(user, pw); s.send_message(msg) | |
| return {"status": "sent"} | |