From 117e51f8c84695bc31b97c4aac0d3a03831e46d1 Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Fri, 23 Apr 2021 03:49:02 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20email=20system?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- users/app/utils/__init__.py | 0 users/app/utils/email.py | 28 ++++++++++++++++++++++++++++ users/requirements.txt | 1 + 3 files changed, 29 insertions(+) create mode 100644 users/app/utils/__init__.py create mode 100644 users/app/utils/email.py 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