Files
onion-arch/app/infrastructure/integrations/email/smtp_sender.py
2026-01-30 16:34:56 +03:00

33 lines
1.0 KiB
Python

from __future__ import annotations
import os
from email.message import EmailMessage
import aiosmtplib
class SmtpWelcomeEmailSender:
def __init__(self) -> None:
self._host = os.getenv("SMTP_HOST", "localhost")
self._port = int(os.getenv("SMTP_PORT", "1025"))
self._username = os.getenv("SMTP_USERNAME")
self._password = os.getenv("SMTP_PASSWORD")
self._from_email = os.getenv("SMTP_FROM_EMAIL", "noreply@example.com")
self._use_tls = os.getenv("SMTP_USE_TLS", "false").lower() == "true"
async def send_welcome(self, *, to_email: str, full_name: str) -> None:
msg = EmailMessage()
msg["From"] = self._from_email
msg["To"] = to_email
msg["Subject"] = "Welcome!"
msg.set_content(f"Hi, {full_name}! Welcome to our service.")
await aiosmtplib.send(
msg,
hostname=self._host,
port=self._port,
username=self._username,
password=self._password,
start_tls=self._use_tls,
)