From f40f6c2d026c85867a4ab16312ddb2b287812043 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Sat, 7 Dec 2024 20:42:36 +0100 Subject: [PATCH] can read confirmation mails --- src/mail/mail_confirmation.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/mail/mail_confirmation.py b/src/mail/mail_confirmation.py index e0d3a22..2764708 100755 --- a/src/mail/mail_confirmation.py +++ b/src/mail/mail_confirmation.py @@ -18,13 +18,13 @@ from src.notification.mailer import Mailer from src.pojo.ResultEnum import ResultEnum from src.pojo.mail.mail_pojo import MailPojo, MailAddress -CONFIRMATION_SUBJECT_FR = 'rendez-vous est' +CONFIRMATION_SUBJECT_FR = 'Votre=20rendez-vous=20est=20confirm=C3' CONFIRMATION_SUBJECT_EN = 'confirmed' HERMES_EMAIL = "no-reply@hermes.com" date_format = "%d-%b-%Y" # DD-Mon-YYYY e.g., 3-Mar-2014 -FRENCH_CONFIRMED_MESSAGE = "Nous avons le plaisir de vous confirmer votre rendez-vous" +FRENCH_CONFIRMED_MESSAGE = "Nous aurons le plaisir de vous accueillir" class MailConfirmationReader(): @@ -63,16 +63,13 @@ class MailConfirmationReader(): search_terms = 'SINCE "{}"'.format( datetime.datetime.today().strftime( date_format)) - print("search terms is " + search_terms) imap.select_folder(folder) messages = imap.search(['SINCE', datetime.datetime.today()]) - print("%d messages from our best friend" % len(messages)) for uid, message_data in imap.fetch(messages, 'RFC822').items(): try: email_message = email.message_from_bytes(message_data[b'RFC822']) from_address = email_message.get('FROM') subject = email_message.get('subject') - # print("{}, {},{}".format(from_address, subject, email_message)) body = "" if "no-reply@hermes.com" in from_address: for part in email_message.walk(): @@ -81,12 +78,11 @@ class MailConfirmationReader(): body = body + str(part.get_payload(decode=True).decode("utf-8")) elif part.get_content_type() == "text/plain": body = body + part.get_payload() - logger.info("mail is {} and subject is {}".format(self.login, subject)) + logger.info("mail is {} and subject is {}, body is {}".format(self.login, subject, body)) if CONFIRMATION_SUBJECT_FR in subject or CONFIRMATION_SUBJECT_EN in subject or "Votre_rendez-vous_est_confirm" in subject: mail = MailPojo(subject=subject, body=body, from_address=from_address) mail.isImapClient = True - logger.info("subject is {}".format(subject)) - logger.info("body is {}".format(body)) + mail.mail_address = self.login mail_messages.append(mail) except Exception as error: print(error) @@ -96,9 +92,6 @@ class MailConfirmationReader(): def _get_messages_from_folder(self, imap, subject, folder="INBOX") -> list: imap.select(folder) mail_messages = [] - # typ, data = imap.search(None, '(SUBJECT "{}" SINCE "{}")'.format(subject, - # datetime.datetime.today().strftime( - # date_format))) typ, data = imap.search(None, '(SINCE "{}")'.format( datetime.datetime.today().strftime( date_format))) @@ -240,7 +233,7 @@ def read_mails_and_find_confirmation_contacts(all_mails=False): # mail_list = [mail_address3] -init_logger() +# init_logger() logger = logging.getLogger() logger.addHandler(logging.StreamHandler(stream=sys.stdout)) # check whether the url has already been clicked