can read confirmation email from onet.pl
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user