diff --git a/users/app/utils/__init__.py b/users/app/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/users/app/utils/email.py b/users/app/utils/email.py new file mode 100644 index 0000000..324d4fc --- /dev/null +++ b/users/app/utils/email.py @@ -0,0 +1,28 @@ +from email import message_from_string +from email.mime.multipart import MIMEMultipart +from typing import Any, Dict, Optional + +from aiosmtplib import send +from pydantic import EmailStr + +from app.core.config import settings + + +async def send_message( + receiver: EmailStr, + subject: str = "", + html: str = "", + environment: Optional[Dict[str, Any]] = None, +): + message = MIMEMultipart("alternative") + message["From"] = (settings.EMAIL_FROM_NAME, settings.EMAILS_FROM_EMAIL) + message["To"] = receiver + message["Subject"] = subject + await send( + message=message, + host=settings.SMTP_HOST, + port=settings.SMTP_PORT, + use_tls=settings.SMTP_TLS, + username=settings.SMTP_USER, + password=settings.SMTP_PASSWORD, + ) diff --git a/users/requirements.txt b/users/requirements.txt index f3c0c7c..c4b2cec 100644 --- a/users/requirements.txt +++ b/users/requirements.txt @@ -7,6 +7,7 @@ pydantic[email]==1.8.1 passlib[bcrypt]==1.7.4 python-jose==3.2.0 python-multipart==0.0.5 +aiosmtplib==1.1.4 arq==0.19.1 uvloop==0.15.2