/
Eugeny
/
MailReceiptScripts_Python
Обзор
Документация
Войти
/
Eugeny
/
MailReceiptScripts_Python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
config.py
56 строк
2 KB
Eugeny
upload files
21 дек 2025, 12:51
21 дек 2025, 12:51
a6a057b
Код
Авторство
О чём код?
import os import re from pathlib import Path from dotenv import load_dotenv # Загрузка переменных из .env load_dotenv() class Config: IMAP_SERVER = "imap.yandex.ru" IMAP_PORT = 993 ALLOWED_EXTENSIONS = {'.txt', '.csv', '.pdf'} # Получаем список почтовых ящиков EMAIL_ACCOUNTS = [] i = 1 while True: email_addr = os.getenv(f'EMAIL_{i}') password = os.getenv(f'APP_PASSWORD_{i}') if not email_addr or not password: break EMAIL_ACCOUNTS.append({ 'email': email_addr, 'password': password, 'download_folder': Path(f"./attachments_{email_addr}") }) i += 1 # SpamAssassin настройки USE_SPAMASSASSIN = os.getenv('USE_SPAMASSASSIN', 'false').lower() == 'true' SPAMASSASSIN_PATH = os.getenv('SPAMASSASSIN_PATH', 'spamc') SPAM_THRESHOLD = float(os.getenv('SPAM_THRESHOLD', '5.0')) # Ключевые слова SPAM_KEYWORDS = [ kw.strip().lower() for kw in os.getenv('SPAM_KEYWORDS', '').split(',') if kw.strip() ] # Регулярные выражения SPAM_PATTERNS = [ re.compile(r"https?://", re.IGNORECASE), re.compile(r"www\.", re.IGNORECASE), re.compile(r"[A-Z]{10,}", re.IGNORECASE), re.compile(r"!{3,}", re.IGNORECASE), re.compile(r"\$\d{4,}", re.IGNORECASE), re.compile(r"\d{1,3}[\.\,]\d{3,}", re.IGNORECASE), ] @classmethod def validate(cls): if not cls.EMAIL_ACCOUNTS: raise ValueError("Необходимо указать хотя бы один почтовый ящик в переменных окружения!")