import imaplib from imapclient import IMAPClient DOMAIN_YAHOO = "yahoo.com" DOMAIN_SINA = "sina.com" DOMAIN_HOTMAIL = "hotmail.com" DOMAIN_TIM_IT = "tim.it" DOMAIN_163 = "163.com" DOMAIN_RAMBLER_RU = "rambler.ru" DOMAIN_ALICE_IT = "alice.it" DOMAIN_MARS_DTI_NE_JP = "mars.dti.ne.jp" DOMAN_BTVM_NE_JP = "btvm.ne.jp" DOMAN_AURORA_DTI_NE_JP = "aurora.dti.ne.jp" DOMAN_GMAIL = "gmail.com" DOMAIN_GMX = "gmx.com" DOMAIN_GMX_NET = "gmx.net" DOMAIN_GMX_FR = "gmx.fr" DOMAIN_GMX_US = "gmx.us" DOMAIN_GMX_CH = "gmx.ch" DOMAIN_ONET = "onet.pl" DOMAIN_NAVER = "naver.com" DOMAIN_INBOX_LV = "inbox.lv" DOMAIN_GMX_DE = "gmx.de" DOMAIN_PISS_MAIL = "pissmail.com" DOMAIN_INCEL_EMAIL = "incel.email" DOMAIN_SHITPOSTING_EXPERT = "shitposting.expert" DOMAIN_HATESJE_WS = "hatesje.ws" DOMAIN_CHILD_PIZZA = "child.pizza" DOMAIN_GENOCIDE_FUN = "genocide.fun" DOMAIN_DMC_CHAT = "dmc.chat" AOL_IMAP_SERVER = "imap.aol.com" IMAP_SERVER_163 = "imap.163.com" 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" TIME_IT_SERVER = "imap.tim.it" MARS_DTI_NE_JP_SERVER = "imap.cm.dream.jp" NAVER_SERVER = "imap.naver.com" BTVM_NE_JP = "imap.btvm.ne.jp" SEREVER_GMAIL = "imap.gmail.com" SERVER_IMAGE_ONET = "imap.poczta.onet.pl" SERVER_GMX = "imap.gmx.com" SERVER_GMX_NET = "imap.gmx.net" SERVER_PISS_MAIL = "mail.pissmail.com" INBOX_LV = "mail.inbox.lv" def show_folders(imap) -> list: folders = [] isImapClient = isinstance(imap, IMAPClient) if not isImapClient: for i in imap.list()[1]: l = i.decode().split(' "/" ') if len(l) > 1: folders.append(l[1]) if len(folders) == 0: folders.append('INBOX') return folders else: list = imap.list_folders() for i in list: name = i[-1] folders.append(name) return folders def create_imap(login: str): # create an IMAP4 class with SSL if DOMAIN_163 in login: imap = IMAPClient(IMAP_SERVER_163, use_uid=True) elif DOMAIN_YAHOO in login: imap = imaplib.IMAP4_SSL(YAHOO_IMAP_SERVER) elif DOMAIN_GMX in login or DOMAIN_GMX_FR in login or DOMAIN_GMX_US in login or DOMAIN_GMX_CH in login: imap = imaplib.IMAP4_SSL(SERVER_GMX) elif DOMAIN_SINA in login: # imap = imaplib.IMAP4_SSL(IMAP_SERVER_SINA) imap = IMAPClient(IMAP_SERVER_SINA, use_uid=True) 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 DOMAN_BTVM_NE_JP in login: imap = imaplib.IMAP4_SSL(BTVM_NE_JP) elif DOMAN_GMAIL in login: imap = imaplib.IMAP4_SSL(SEREVER_GMAIL, port=993) elif DOMAIN_ONET in login: imap = IMAPClient(SERVER_IMAGE_ONET, use_uid=True) elif DOMAIN_TIM_IT in login: imap = imaplib.IMAP4(TIME_IT_SERVER) elif DOMAIN_ALICE_IT in login: imap = imaplib.IMAP4(ALICE_IMAP_SERVER, port=143) elif DOMAIN_MARS_DTI_NE_JP in login: imap = imaplib.IMAP4(MARS_DTI_NE_JP_SERVER, port=143) elif DOMAN_AURORA_DTI_NE_JP in login: imap = imaplib.IMAP4(MARS_DTI_NE_JP_SERVER, port=143) elif DOMAIN_NAVER in login: imap = imaplib.IMAP4_SSL(NAVER_SERVER, port=993) elif DOMAIN_GMX_DE in login or DOMAIN_GMX_NET in login: imap = imaplib.IMAP4_SSL(SERVER_GMX_NET, port=993) elif DOMAIN_INBOX_LV in login: imap = imaplib.IMAP4_SSL(INBOX_LV, port=993) elif DOMAIN_PISS_MAIL in login or DOMAIN_CHILD_PIZZA in login or DOMAIN_DMC_CHAT in login or DOMAIN_GENOCIDE_FUN in login or DOMAIN_HATESJE_WS in login or DOMAIN_INCEL_EMAIL in login or DOMAIN_SHITPOSTING_EXPERT in login: imap = imaplib.IMAP4_SSL(SERVER_PISS_MAIL, port=993) else: imap = imaplib.IMAP4_SSL(AOL_IMAP_SERVER) return imap