diff --git a/.gitignore b/.gitignore index 68bc17f..dc51532 100644 --- a/.gitignore +++ b/.gitignore @@ -158,3 +158,5 @@ cython_debug/ # 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. #.idea/ + +.DS_* diff --git a/creyPY/services/__init__.py b/creyPY/services/__init__.py index d75e829..f345324 100644 --- a/creyPY/services/__init__.py +++ b/creyPY/services/__init__.py @@ -1,2 +1,3 @@ from .auth0 import * # noqa from .stripe import * # noqa +from .aws import * # noqa diff --git a/creyPY/services/aws/__init__.py b/creyPY/services/aws/__init__.py new file mode 100644 index 0000000..72dbe98 --- /dev/null +++ b/creyPY/services/aws/__init__.py @@ -0,0 +1 @@ +from .email import * # noqa diff --git a/creyPY/services/aws/email.py b/creyPY/services/aws/email.py new file mode 100644 index 0000000..c855b90 --- /dev/null +++ b/creyPY/services/aws/email.py @@ -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