33 lines
1.0 KiB
Python
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,
|
|
)
|