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.AcceptedResultPojo import get_accepted_result_from
|
||||||
from src.notification.mailer import Mailer
|
from src.notification.mailer import Mailer
|
||||||
from src.pojo.ResultEnum import ResultEnum
|
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_FR = 'Votre rendez-vous est'
|
||||||
CONFIRMATION_SUBJECT_EN = 'appointment is confirmed'
|
CONFIRMATION_SUBJECT_EN = 'appointment is confirmed'
|
||||||
@@ -41,20 +41,19 @@ class MailConfirmationReader():
|
|||||||
mail_list = []
|
mail_list = []
|
||||||
print("read mails from {}".format(self.login))
|
print("read mails from {}".format(self.login))
|
||||||
if isImapClient:
|
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))
|
||||||
mail_list.extend(self._get_messages_from_folder_for_imapclient(imap, CONFIRMATION_SUBJECT_EN))
|
|
||||||
else:
|
else:
|
||||||
folderList = show_folders(imap)
|
folderList = show_folders(imap)
|
||||||
for folder in folderList:
|
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_FR, folder=folder))
|
||||||
mail_list.extend(self._get_messages_from_folder(imap, CONFIRMATION_SUBJECT_EN, folder=folder))
|
mail_list.extend(self._get_messages_from_folder(imap, CONFIRMATION_SUBJECT_EN, folder=folder))
|
||||||
if isImapClient:
|
if not isImapClient:
|
||||||
imap.close()
|
imap.close()
|
||||||
imap.logout()
|
imap.logout()
|
||||||
mails_messages.extend(mail_list)
|
mails_messages.extend(mail_list)
|
||||||
return 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 = []
|
mail_messages = []
|
||||||
search_terms = 'SINCE "{}"'.format(
|
search_terms = 'SINCE "{}"'.format(
|
||||||
datetime.datetime.today().strftime(
|
datetime.datetime.today().strftime(
|
||||||
@@ -74,12 +73,13 @@ class MailConfirmationReader():
|
|||||||
for part in email_message.walk():
|
for part in email_message.walk():
|
||||||
print(part.get_content_type())
|
print(part.get_content_type())
|
||||||
if part.get_content_type() == "text/html":
|
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":
|
elif part.get_content_type() == "text/plain":
|
||||||
body = body + part.get_payload()
|
body = body + part.get_payload()
|
||||||
if CONFIRMATION_SUBJECT_FR in subject or CONFIRMATION_SUBJECT_EN in subject:
|
if CONFIRMATION_SUBJECT_FR in subject or CONFIRMATION_SUBJECT_EN in subject:
|
||||||
mail = MailPojo(subject=subject, body=body, from_address=from_address)
|
mail = MailPojo(subject=subject, body=body, from_address=from_address)
|
||||||
mail.isImapClient = True
|
mail.isImapClient = True
|
||||||
|
print("subject is {}".format(subject))
|
||||||
print("body is {}".format(body))
|
print("body is {}".format(body))
|
||||||
mail_messages.append(mail)
|
mail_messages.append(mail)
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
@@ -146,7 +146,7 @@ def accept_appointment_found(accepted_result_list: list):
|
|||||||
mailer = Mailer()
|
mailer = Mailer()
|
||||||
print(accepted_result_list)
|
print(accepted_result_list)
|
||||||
for reserve in 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)
|
MONGO_STORE_MANAGER.update_reserve_result(reserve.id, ResultEnum.ACCEPTED, reserve.message)
|
||||||
|
|
||||||
if len(accepted_result_list) > 0:
|
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():
|
def read_mails_and_find_confirmation_contacts():
|
||||||
mail_list = MONGO_STORE_MANAGER.get_destination_emails()
|
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]
|
# mail_list = [mail_address3]
|
||||||
mails_messages = []
|
mails_messages = []
|
||||||
# read all the emails
|
# read all the emails
|
||||||
with ThreadPoolExecutor(max_workers=100) as executor:
|
with ThreadPoolExecutor(max_workers=200) as executor:
|
||||||
for mail in mail_list:
|
for mail in mail_list:
|
||||||
if DOMAIN_HOTMAIL not in mail.mail:
|
if DOMAIN_HOTMAIL not in mail.mail:
|
||||||
mail_reader = MailConfirmationReader(mail.mail, mail.password)
|
mail_reader = MailConfirmationReader(mail.mail, mail.password)
|
||||||
|
|||||||
Reference in New Issue
Block a user