67 lines
2.3 KiB
Python
67 lines
2.3 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, 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])
|