import logging import aiosmtplib from email.message import EmailMessage from app.config import settings logger = logging.getLogger("app.auth.email") async def send_email(to: str, subject: str, body: str) -> None: """Send a plaintext email, or log it to the console if no SMTP server is configured (dev mode).""" if not settings.smtp_host: logger.info("=== DEV EMAIL (no SMTP configured) ===\nTo: %s\nSubject: %s\n\n%s", to, subject, body) return message = EmailMessage() message["From"] = settings.smtp_from message["To"] = to message["Subject"] = subject message.set_content(body) await aiosmtplib.send( message, hostname=settings.smtp_host, port=settings.smtp_port, username=settings.smtp_user or None, password=settings.smtp_password or None, start_tls=True, )