feat: Added Email Sending Service (#52)

* feat: Added Email Sending Service

* changes

* changes
This commit is contained in:
vikynoah
2025-06-03 10:00:49 +02:00
committed by GitHub
parent 8a882cdaae
commit f805b3f508
4 changed files with 35 additions and 0 deletions

2
.gitignore vendored
View File

@@ -158,3 +158,5 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear # and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder. # option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/ #.idea/
.DS_*

View File

@@ -1,2 +1,3 @@
from .auth0 import * # noqa from .auth0 import * # noqa
from .stripe import * # noqa from .stripe import * # noqa
from .aws import * # noqa

View File

@@ -0,0 +1 @@
from .email import * # noqa

View File

@@ -0,0 +1,31 @@
import os
import boto3
from botocore.exceptions import ClientError
AWS_CLIENT_ID = os.getenv("AWS_CLIENT_ID")
AWS_CLIENT_SECRET = os.getenv("AWS_CLIENT_SECRET")
AWS_SENDER_EMAIL = os.getenv("AWS_SENDER_EMAIL")
AWS_REGION = os.getenv("AWS_REGION", "eu-central-1")
async def send_email_ses(recipient_email, subject, html_body):
ses_client = boto3.client(
"ses",
aws_access_key_id=AWS_CLIENT_ID,
aws_secret_access_key=AWS_CLIENT_SECRET,
region_name=AWS_REGION,
)
email_message = {
"Source": AWS_SENDER_EMAIL,
"Destination": {"ToAddresses": [recipient_email]},
"Message": {
"Subject": {"Data": subject, "Charset": "UTF-8"},
"Body": {"Html": {"Data": html_body, "Charset": "UTF-8"}},
},
}
try:
response = ses_client.send_email(**email_message)
return response["MessageId"]
except ClientError as e:
return None