use proxy for yahoo mails too

This commit is contained in:
2026-04-24 16:57:17 +02:00
parent dc25758bdf
commit 9475d8d542
5 changed files with 30 additions and 11 deletions
-3
View File
@@ -16,9 +16,6 @@ def main():
# initialize discord
print("init discord done")
_accepted_appointments = read_mails_and_find_confirmation_contacts(mode='default')
# for item in _accepted_appointments:
# send_message(create_message_from_item(item))
if __name__ == '__main__':
main()
+5 -2
View File
@@ -12,8 +12,8 @@ from imapclient import IMAPClient
from src.db.mirgration.migration_tools import migre_accepted_appointment
from src.db.mongo_manager import MONGO_STORE_MANAGER
from src.mail.imap_proxy_reader import ProxyMailReader, MailAccount, ProxyConfig
from src.mail.mail_constants import create_imap, show_folders, is_gmx_address
from src.mail.mail_reader import get_gmx_proxy_config
from src.mail.mail_constants import create_imap, show_folders, is_gmx_address, is_yahoo_address
from src.mail.mail_reader import get_gmx_proxy_config, get_yahoo_proxy_config
from src.notification.AcceptedResultPojo import get_accepted_result_from
from src.notification.mailer import Mailer
from src.pojo.ResultEnum import ResultEnum
@@ -213,11 +213,14 @@ def find_confirmation_contacts_for_today(mode: str = 'default'):
def find_confirmation_contacts_mail_list(mail_list, subjects: list = None):
mails_messages = []
gmx_proxy_config = get_gmx_proxy_config()
yahoo_proxy_config = get_yahoo_proxy_config()
# read all the emails
with ThreadPoolExecutor(max_workers=200) as executor:
for mail in mail_list:
if is_gmx_address(mail.mail) and gmx_proxy_config is not None:
executor.submit(read_gmx_proxy_confirmation_emails, mail, mails_messages, gmx_proxy_config, subjects)
elif is_yahoo_address(mail.mail) and yahoo_proxy_config is not None:
executor.submit(read_gmx_proxy_confirmation_emails, mail, mails_messages, yahoo_proxy_config, subjects)
else:
mail_reader = MailConfirmationReader(mail.mail, mail.password)
executor.submit(mail_reader.read_emails, mails_messages)
+4 -2
View File
@@ -1,5 +1,3 @@
import imaplib
from imapclient import IMAPClient
DOMAIN_YAHOO = "yahoo.com"
@@ -44,6 +42,10 @@ def is_gmx_address(login: str) -> bool:
return any(domain in login for domain in GMX_DOMAINS)
def is_yahoo_address(login: str) -> bool:
return DOMAIN_YAHOO in login
DOMAIN_PISS_MAIL = "pissmail.com"
DOMAIN_INCEL_EMAIL = "incel.email"
DOMAIN_SHITPOSTING_EXPERT = "shitposting.expert"
+20 -3
View File
@@ -1,20 +1,20 @@
import datetime
import email
import re
import os
from typing import Optional
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 typing import Optional
from imapclient import IMAPClient
from src.db.mongo_manager import MONGO_STORE_MANAGER
from src.logs.AppLogging import init_logger
from src.mail.mail_constants import create_imap, show_folders, is_gmx_address
from src.mail.imap_proxy_reader import ProxyMailReader, ProxyConfig, MailAccount
from src.mail.mail_constants import create_imap, show_folders, is_gmx_address
from src.pojo.mail.mail_pojo import MailPojo
from src.utils.timeutiles import is_time_between
@@ -71,6 +71,23 @@ def get_gmx_proxy_config() -> Optional[ProxyConfig]:
)
def get_yahoo_proxy_config() -> Optional[ProxyConfig]:
host = os.environ.get("YAHOO_PROXY_HOST", "")
if not host:
return None
try:
port = int(os.environ.get("YAHOO_PROXY_PORT", "443"))
except ValueError:
port = 443
return ProxyConfig(
host=host,
port=port,
proxy_type=os.environ.get("YAHOO_PROXY_TYPE", "SOCKS5"),
username=os.environ.get("YAHOO_PROXY_USERNAME"),
password=os.environ.get("YAHOO_PROXY_PASSWORD"),
)
def read_gmx_proxy_emails(mail, mails_messages: list, proxy_config: ProxyConfig) -> None:
account = MailAccount(login=mail.mail, password=mail.password)
results = ProxyMailReader(account, proxy_config).read(since=datetime.datetime.today())
@@ -32,7 +32,7 @@ def get_random_number(size=7) -> str:
return ran
def generate_single_titre_sejour_number() -> str:
id_number = prefix_tire_de_sejour + get_random_number()
id_number = prefix_tire_de_sejour + get_random_number(size=8)
return id_number
def generate_titre_sejour_number(size=10) -> list: