diff --git a/src/mail/mail_confirmation.py b/src/mail/mail_confirmation.py index b8d5942..d239b6a 100644 --- a/src/mail/mail_confirmation.py +++ b/src/mail/mail_confirmation.py @@ -13,7 +13,7 @@ from src.mail.mail_constants import DOMAIN_HOTMAIL, create_imap, show_folders from src.notification.AcceptedResultPojo import get_accepted_result_from from src.notification.mailer import Mailer from src.pojo.ResultEnum import ResultEnum -from src.pojo.mail.mail_pojo import MailPojo +from src.pojo.mail.mail_pojo import MailPojo, MailAddress CONFIRMATION_SUBJECT_FR = 'Votre rendez-vous est' CONFIRMATION_SUBJECT_EN = 'appointment is confirmed' @@ -41,20 +41,19 @@ class MailConfirmationReader(): mail_list = [] print("read mails from {}".format(self.login)) if isImapClient: - mail_list.extend(self._get_messages_from_folder_for_imapclient(imap, CONFIRMATION_SUBJECT_FR)) - mail_list.extend(self._get_messages_from_folder_for_imapclient(imap, CONFIRMATION_SUBJECT_EN)) + mail_list.extend(self._get_messages_from_folder_for_imapclient(imap)) else: folderList = show_folders(imap) for folder in folderList: mail_list.extend(self._get_messages_from_folder(imap, CONFIRMATION_SUBJECT_FR, folder=folder)) mail_list.extend(self._get_messages_from_folder(imap, CONFIRMATION_SUBJECT_EN, folder=folder)) - if isImapClient: + if not isImapClient: imap.close() imap.logout() mails_messages.extend(mail_list) return mail_list - def _get_messages_from_folder_for_imapclient(self, imap, subject, folder="INBOX") -> list: + def _get_messages_from_folder_for_imapclient(self, imap, folder="INBOX") -> list: mail_messages = [] search_terms = 'SINCE "{}"'.format( datetime.datetime.today().strftime( @@ -74,12 +73,13 @@ class MailConfirmationReader(): for part in email_message.walk(): print(part.get_content_type()) if part.get_content_type() == "text/html": - body = body + part.get_payload() + body = body + str(part.get_payload(decode=True).decode("utf-8")) elif part.get_content_type() == "text/plain": body = body + part.get_payload() if CONFIRMATION_SUBJECT_FR in subject or CONFIRMATION_SUBJECT_EN in subject: mail = MailPojo(subject=subject, body=body, from_address=from_address) mail.isImapClient = True + print("subject is {}".format(subject)) print("body is {}".format(body)) mail_messages.append(mail) except Exception as error: @@ -146,7 +146,7 @@ def accept_appointment_found(accepted_result_list: list): mailer = Mailer() print(accepted_result_list) for reserve in accepted_result_list: - mailer.send_email(get_accepted_result_from(reserve, MONGO_STORE_MANAGER), to_all=False) + mailer.send_email(get_accepted_result_from(reserve, MONGO_STORE_MANAGER), to_all=True) MONGO_STORE_MANAGER.update_reserve_result(reserve.id, ResultEnum.ACCEPTED, reserve.message) if len(accepted_result_list) > 0: @@ -155,11 +155,11 @@ def accept_appointment_found(accepted_result_list: list): def read_mails_and_find_confirmation_contacts(): mail_list = MONGO_STORE_MANAGER.get_destination_emails() - # mail_address3 = MailAddress(mail="ciyuexie@aol.com", password="czezlmmyypokdfce") + # mail_address3 = MailAddress(mail="taibenchragu1978@onet.pl", password="2J)kyfNgyOZ") # mail_list = [mail_address3] mails_messages = [] # read all the emails - with ThreadPoolExecutor(max_workers=100) as executor: + with ThreadPoolExecutor(max_workers=200) as executor: for mail in mail_list: if DOMAIN_HOTMAIL not in mail.mail: mail_reader = MailConfirmationReader(mail.mail, mail.password)