From 8e29c462fd16305d81757feb1bf07da2ac914352 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Sat, 14 Jan 2023 12:41:33 +0100 Subject: [PATCH] need to add api to send emails --- server.py | 9 ++++++ src/mail/mail_sender.py | 35 +++++++++++++++++++++ src/pojo/mail/email_receiver_pojo.py | 9 ++++++ src/utils/send_email_mailjet.py | 46 +++++++--------------------- 4 files changed, 64 insertions(+), 35 deletions(-) create mode 100644 src/mail/mail_sender.py create mode 100644 src/pojo/mail/email_receiver_pojo.py diff --git a/server.py b/server.py index 235c55f..15d3d4c 100644 --- a/server.py +++ b/server.py @@ -22,6 +22,15 @@ def verify_token(token): return token == secret_token +@app.route('/send-email', methods=['POST']) +@auth.login_required +@cross_origin() +def send_email(): + data_in_json = request.get_json() + print(data_in_json) + return '', 204 + + @app.route('/', methods=['POST']) @auth.login_required @cross_origin() diff --git a/src/mail/mail_sender.py b/src/mail/mail_sender.py new file mode 100644 index 0000000..ac417a6 --- /dev/null +++ b/src/mail/mail_sender.py @@ -0,0 +1,35 @@ +from mailjet_rest import Client + +api_key = "489274f04d5c155f81370fccc3904e20" +api_secret = "edac41f0e1726ba49808dfb12204ecd6" + + +class MailSender: + def __init__(self, dest_email, email_body, store: str, contact_name: str, from_email="no-reply@lpaconsulting.fr"): + self.mailjet_client = Client(auth=(api_key, api_secret), version='v3.1') + self.store = store + self.from_email = from_email + self.dest_email = dest_email + self.contact_name = contact_name + self.email_body = email_body + + def send(self): + data = { + 'Messages': [ + { + "From": { + "Email": self.from_email, + "Name": self.store + }, + "To": [ + { + "Email": self.dest_email, + "Name": self.contact_name + } + ], + "Subject": "Your appointment is confirmed!", + "HTMLPart": self.email_body + } + ] + } + return self.mailjet_client.send.create(data=data) diff --git a/src/pojo/mail/email_receiver_pojo.py b/src/pojo/mail/email_receiver_pojo.py new file mode 100644 index 0000000..1df5ed5 --- /dev/null +++ b/src/pojo/mail/email_receiver_pojo.py @@ -0,0 +1,9 @@ +from src.pojo.contact_pojo import ContactPojo + + +class EmailReceiver: + def __init__(self, mail_address: str, store_type: int, id: str, date: str): + self.mail_address = mail_address + self.store_type = store_type + self.appointment_id = id + self.appointment_date = date diff --git a/src/utils/send_email_mailjet.py b/src/utils/send_email_mailjet.py index a30170c..128a058 100644 --- a/src/utils/send_email_mailjet.py +++ b/src/utils/send_email_mailjet.py @@ -1,53 +1,29 @@ -""" -Run: -""" -from mailjet_rest import Client - from src import config +from src.mail.mail_sender import MailSender -api_key = "489274f04d5c155f81370fccc3904e20" -api_secret = "edac41f0e1726ba49808dfb12204ecd6" -mailjet = Client(auth=(api_key, api_secret), version='v3.1') -from_email = "no-reply@lpaconsulting.fr" -# store = "Hermès Paris Faubourg" -store = "Hermès Paris George V" +store = "Hermès Paris Faubourg" +# store = "Hermès Paris George V" # store = "Hermès Paris Sèvres" # dest_email = "928490803@qq.com" # dest_email = "1757344572@qq.com" # dest_email = "392417782@qq.com" # dest_email = "linghuili@hotmail.com" +dest_email = "panleicim@gmail.com" # dest_email = "fanfan19810617@icloud.com" # dest_email = "fanchunying323@163.com" # dest_email = "lytlaure@gmail.com" -dest_email = "arianezhangsn@yahoo.com" +# dest_email = "arianezhangsn@yahoo.com" +# dest_email = "tranthu.ht1983@gmail.com" +# dest_email = "124652097@qq.com" # dest_email = "sunrose75015@gmail.com" -# dest_email = "1340219934@qq.com" +# dest_email = "1340219934@qq.com" #小于 # dest_email = "lytlaure@gmail.com" # dest_email = "m13805869912@163.com" # dest_email = "tangliang0411@gmail.com" -contact_name = "LU yaping" +contact_name = "YUAN Jinxuan" f = open(config.ROOT_DIR + "/templates/confirmed_rdv.html", "r") email_body = f.read() print(email_body) -data = { - 'Messages': [ - { - "From": { - "Email": from_email, - "Name": store - }, - "To": [ - { - "Email": dest_email, - "Name": contact_name - } - ], - "Subject": "Your appointment is confirmed!", - "HTMLPart": email_body - } - ] -} -result = mailjet.send.create(data=data) -print(result.status_code) -print(result.json()) +sender = MailSender(dest_email=dest_email, email_body=email_body, store=store, contact_name=contact_name) +print(sender.send().json)