From ce8be6d684fba553b933cebcc0a2f393a589a544 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Sun, 26 Mar 2023 20:11:54 +0200 Subject: [PATCH] add alice.it mails --- src/mail/mail_confirmation.py | 27 ++++----------------------- src/mail/mail_constants.py | 23 +++++++++++++++++++++++ src/mail/mail_reader.py | 32 +++++--------------------------- src/utils/excel_reader.py | 8 ++++---- 4 files changed, 36 insertions(+), 54 deletions(-) diff --git a/src/mail/mail_confirmation.py b/src/mail/mail_confirmation.py index b8f5096..0741dc0 100644 --- a/src/mail/mail_confirmation.py +++ b/src/mail/mail_confirmation.py @@ -1,20 +1,17 @@ import datetime import email -import imaplib +from builtins import list from concurrent.futures import ThreadPoolExecutor from email.header import decode_header from email.message import Message -from builtins import list - from src.db.mirgration.migration_tools import migre_accepted_appointment from src.db.mongo_manager import MONGO_STORE_MANAGER -from src.mail.mail_constants import DOMAIN_163, DOMAIN_YAHOO, DOMAIN_SINA, IMAP_SERVER_163, YAHOO_IMAP_SERVER, \ - IMAP_SERVER_SINA, AOL_IMAP_SERVER, DOMAIN_HOTMAIL, HOTMAIL_IMAP_SERVER, DOMAIN_RAMBLER_RU, RAMBLER_IMAP_SERVER +from src.mail.mail_constants import DOMAIN_HOTMAIL, create_imap 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, MailAddress +from src.pojo.mail.mail_pojo import MailPojo CONFIRMATION_SUBJECT_FR = 'Votre rendez-vous est' CONFIRMATION_SUBJECT_EN = 'appointment is confirmed' @@ -34,25 +31,9 @@ class MailConfirmationReader(): l = i.decode().split(' "/" ') print(l[0] + " = " + l[1]) - def create_imap(self): - # create an IMAP4 class with SSL - if DOMAIN_163 in self.login: - imap = imaplib.IMAP4_SSL(IMAP_SERVER_163) - elif DOMAIN_YAHOO in self.login: - imap = imaplib.IMAP4_SSL(YAHOO_IMAP_SERVER) - elif DOMAIN_SINA in self.login: - imap = imaplib.IMAP4_SSL(IMAP_SERVER_SINA) - elif DOMAIN_HOTMAIL in self.login: - imap = imaplib.IMAP4_SSL(HOTMAIL_IMAP_SERVER) - elif DOMAIN_RAMBLER_RU in self.login: - imap = imaplib.IMAP4_SSL(RAMBLER_IMAP_SERVER) - else: - imap = imaplib.IMAP4_SSL(AOL_IMAP_SERVER) - return imap - def read_emails(self, mails_messages: list) -> list: # create an IMAP4 class with SSL - imap = self.create_imap() + imap = create_imap(self.login) # authenticate type, dat = imap.login(self.login, self.password) print("type is {} for {}".format(type, self.login)) diff --git a/src/mail/mail_constants.py b/src/mail/mail_constants.py index b16b282..64265b0 100644 --- a/src/mail/mail_constants.py +++ b/src/mail/mail_constants.py @@ -1,9 +1,12 @@ +import imaplib + DOMAIN_YAHOO = "yahoo.com" DOMAIN_SINA = "sina.com" DOMAIN_HOTMAIL = "hotmail.com" DOMAIN_163 = "163.com" DOMAIN_RAMBLER_RU = "rambler.ru" +DOMAIN_ALICE_IT = "alice.it" AOL_IMAP_SERVER = "imap.aol.com" IMAP_SERVER_163 = "imap.163.com" @@ -11,3 +14,23 @@ IMAP_SERVER_SINA = "imap.sina.com" YAHOO_IMAP_SERVER = "imap.mail.yahoo.com" HOTMAIL_IMAP_SERVER = "outlook.office365.com" RAMBLER_IMAP_SERVER = "imap.rambler.ru" +ALICE_IMAP_SERVER = "in.alice.it" + + +def create_imap(login: str): + # create an IMAP4 class with SSL + if DOMAIN_163 in login: + imap = imaplib.IMAP4_SSL(IMAP_SERVER_163) + elif DOMAIN_YAHOO in login: + imap = imaplib.IMAP4_SSL(YAHOO_IMAP_SERVER) + elif DOMAIN_SINA in login: + imap = imaplib.IMAP4_SSL(IMAP_SERVER_SINA) + elif DOMAIN_HOTMAIL in login: + imap = imaplib.IMAP4_SSL(HOTMAIL_IMAP_SERVER) + elif DOMAIN_RAMBLER_RU in login: + imap = imaplib.IMAP4_SSL(RAMBLER_IMAP_SERVER) + elif DOMAIN_ALICE_IT in login: + imap = imaplib.IMAP4(ALICE_IMAP_SERVER, port=143) + else: + imap = imaplib.IMAP4_SSL(AOL_IMAP_SERVER) + return imap diff --git a/src/mail/mail_reader.py b/src/mail/mail_reader.py index fe06c0d..b77709f 100644 --- a/src/mail/mail_reader.py +++ b/src/mail/mail_reader.py @@ -1,23 +1,17 @@ import datetime import email -import imaplib import re +from builtins import list from concurrent.futures import ThreadPoolExecutor +from datetime import time from email.header import decode_header from email.message import Message -from builtins import list - -from src import params from src.db.mongo_manager import MONGO_STORE_MANAGER from src.logs.AppLogging import init_logger -from src.mail.mail_constants import DOMAIN_163, DOMAIN_YAHOO, DOMAIN_SINA, IMAP_SERVER_163, YAHOO_IMAP_SERVER, \ - IMAP_SERVER_SINA, AOL_IMAP_SERVER, DOMAIN_HOTMAIL, HOTMAIL_IMAP_SERVER, DOMAIN_RAMBLER_RU, RAMBLER_IMAP_SERVER -from src.pojo.mail.mail_pojo import MailPojo, MailAddress -from src.proxy.proxy_type import ProxyType +from src.mail.mail_constants import DOMAIN_HOTMAIL, create_imap +from src.pojo.mail.mail_pojo import MailPojo from src.utils.timeutiles import is_time_between -from src.workers.link_validator import LinkValidator -from datetime import time VALIDATION_URL_SUBJECT_fr = 'Validation de votre demande de rendez-vous' VALIDATION_URL_SUBJECT_EN = 'Please confirm your appointment' @@ -39,25 +33,9 @@ class MailReader(): l = i.decode().split(' "/" ') print(l[0] + " = " + l[1]) - def create_imap(self): - # create an IMAP4 class with SSL - if DOMAIN_163 in self.login: - imap = imaplib.IMAP4_SSL(IMAP_SERVER_163) - elif DOMAIN_YAHOO in self.login: - imap = imaplib.IMAP4_SSL(YAHOO_IMAP_SERVER) - elif DOMAIN_SINA in self.login: - imap = imaplib.IMAP4_SSL(IMAP_SERVER_SINA) - elif DOMAIN_HOTMAIL in self.login: - imap = imaplib.IMAP4_SSL(HOTMAIL_IMAP_SERVER) - elif DOMAIN_RAMBLER_RU in self.login: - imap = imaplib.IMAP4_SSL(RAMBLER_IMAP_SERVER) - else: - imap = imaplib.IMAP4_SSL(AOL_IMAP_SERVER) - return imap - def read_emails(self, mails_messages: list) -> list: # create an IMAP4 class with SSL - imap = self.create_imap() + imap = create_imap(self.login) # authenticate type, dat = imap.login(self.login, self.password) print("type is {} for {}".format(type, self.login)) diff --git a/src/utils/excel_reader.py b/src/utils/excel_reader.py index 3c404b2..4989c37 100644 --- a/src/utils/excel_reader.py +++ b/src/utils/excel_reader.py @@ -227,12 +227,12 @@ def save_mails_to_db(): if __name__ == '__main__': # excel_reader = ExcelHelper() - # contacts = excel_reader.read_names("/Users/lpan/Downloads/500_yahoo_12-03-2023.xlsx") + # contacts = excel_reader.read_names("/Users/lpan/Downloads/10_rambler_ru_23_03_2023.xlsx") # print(contacts) # write_new_contacts_to_excel(valid_contacts=contacts) - excel_reader = ExcelHelper() - excel_reader.check_contact_list() - # save_mails_to_db() + # excel_reader = ExcelHelper() + # excel_reader.check_contact_list() + save_mails_to_db() # for mail in excel_reader.read_mails_and_pwd(): # MONGO_STORE_MANAGER.insert_email(mail) # for i in range(1, 64):