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="purge_jigsaws_0p@icloud.com", phone="0649614591", url="url", firstName="wenjing", lastName="Chen", message="msg", type=PublishType.SUCCESS, passport="Ed1543183", slot_position=1, sim_position=1) # mytemplate = Template(filename=definitions.ROOT_DIR + "/templates/appointment_results.html") # print(mytemplate.render(result_list=[result])) mailer = Mailer() mailer.send_email([result])