| 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]):
|
|
|
| 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"}
|
|
|