Files
appointment_tool/notification/mailer.py
T
2022-03-07 22:48:37 +01:00

66 lines
2.2 KiB
Python

import base64
import logging
from mako.template import Template
import boto3
import definitions
import params
from pojo.ReserveResultPojo import ReserveResultPojo, PublishType
TEMPLATE_NAME = 'scrapy_template_email'
AWS_CLIENT_NAME = "sesv2"
AWS_REGION_NAME = "eu-central-1"
UTF8 = 'utf-8'
class Mailer:
def __init__(self):
self.logger = logging.getLogger("Mailer")
encoded_bytes = "4JWcU9B/BzTRXIPlBDt4EobibUU7ji1Sgx+VTsEf".encode(UTF8)
encoded_base64_bytes = base64.b64encode(encoded_bytes)
decoded_bytes = base64.b64decode(encoded_base64_bytes)
secret = decoded_bytes.decode(UTF8)
self.ses_client = boto3.client(AWS_CLIENT_NAME, region_name=AWS_REGION_NAME,
aws_access_key_id="AKIAU67WLKZUXEHXDJB5",
aws_secret_access_key=secret)
def send_email(self, result_list: list):
# recipients = params.firebase_store_manager.get_mail_list()
recipients = ['panleicim@gmail.com']
mytemplate = Template(filename=definitions.ROOT_DIR + "/templates/appointment_results.html")
self.logger.info("send email to " + str(recipients))
self.ses_client.send_email(
FromEmailAddress="noreply@lpaconsulting.fr",
Destination={
"ToAddresses": recipients
},
Content={
'Simple': {
'Subject': {
'Data': '约会结果',
'Charset': 'utf8'
},
'Body': {
'Html': {
'Data': mytemplate.render(result_list=result_list),
'Charset': 'utf8'
}
}
},
}
)
if __name__ == '__main__':
result = ReserveResultPojo(email="panleicim@gmail.com", phone="0649614591", url="url", firstName="Lei",
lastName="PAN", message="msg", type=PublishType.SUCCESS)
mytemplate = Template(filename=definitions.ROOT_DIR + "/templates/appointment_results.html")
print(mytemplate.render(result_list=[result]))
# mailer = Mailer()
# mailer.send_email([result])