init
This commit is contained in:
32
app/infrastructure/integrations/email/smtp_sender.py
Normal file
32
app/infrastructure/integrations/email/smtp_sender.py
Normal file
@@ -0,0 +1,32 @@
|
||||
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,
|
||||
)
|
||||
Reference in New Issue
Block a user