Files
appointment_request/mail/__init__.py
T

67 lines
2.0 KiB
Python

"""
mail/
=====
Package de lecture IMAP pour le bot appointment_request.
Architecture (du plus bas au plus haut niveau) :
imap_proxy_reader — bibliothèque de bas niveau, sans dépendances internes
ProxyConfig dataclass de configuration proxy (SOCKS5/SOCKS4/HTTP)
ProxyIMAPClient IMAPClient passant par un proxy
get_imap_server(login) résolution domaine → serveur IMAP
extract_body(msg) extraction HTML/texte d'un email
send_imap_id(imap) spoofing fingerprint client (RFC 2971)
VALIDATION_URL_* constantes Hermes (source de vérité)
IMAP_SERVER_MAP table domaine → serveur
mail_constants IMAPClient avec fingerprint + fabrique create_imap()
FingerprintIMAPClient IMAPClient auto-ID après login
create_imap(login) fabrique → FingerprintIMAPClient sur le bon serveur
show_folders(imap) liste des dossiers (IMAPClient ou imaplib)
mail_reader_all_contacts logique métier de haut niveau
MailReader lit les emails d'un compte (direct ou proxy)
find_links_to_validate_from_mail_list() point d'entrée principal
"""
from mail.imap_proxy_reader import (
ProxyConfig,
ProxyIMAPClient,
get_imap_server,
extract_body,
send_imap_id,
VALIDATION_URL_SUBJECT_FR,
VALIDATION_URL_SUBJECT_EN,
VALIDATION_URL_REGEX,
IMAP_SERVER_MAP,
)
from mail.mail_constants import (
FingerprintIMAPClient,
create_imap,
show_folders,
)
from mail.mail_reader_all_contacts import (
MailReader,
find_links_to_validate_from_mail_list,
)
__all__ = [
# imap_proxy_reader
"ProxyConfig",
"ProxyIMAPClient",
"get_imap_server",
"extract_body",
"send_imap_id",
"VALIDATION_URL_SUBJECT_FR",
"VALIDATION_URL_SUBJECT_EN",
"VALIDATION_URL_REGEX",
"IMAP_SERVER_MAP",
# mail_constants
"FingerprintIMAPClient",
"create_imap",
"show_folders",
# mail_reader_all_contacts
"MailReader",
"find_links_to_validate_from_mail_list",
]