Руководства

Как блокировать одноразовую почту при регистрации

Три способа ловить временные адреса в форме регистрации — от статического списка до API, с кодом, — и ошибки, из-за которых блокируются настоящие пользователи.

7 мин чтения · Обновлено 2026-10-31 · Attrelix

Что считается одноразовой почтой

Одноразовый (или временный) адрес выдаёт сервис, который даёт ящики без регистрации, обычно на минуты или часы. Так работают Mailinator, Guerrilla Mail, 10 Minute Mail и тысячи менее известных доменов. Они удобны, чтобы не получать рассылки, — и так же удобны тем, кто создаёт много аккаунтов.

С ними часто путают три соседние категории, которые требуют другого подхода:

  • Приватные релеи — privaterelay.appleid.com от «Вход с Apple», duck.com от DuckDuckGo или Firefox Relay — пересылают письма в настоящий постоянный ящик. Блокируя их, вы бьёте по клиентам, ценящим приватность. Считайте их максимум слабым сигналом риска.
  • Бесплатные почтовые сервисы — Gmail, Outlook.com, Yahoo — не одноразовые. У них другая схема злоупотреблений: алиасы одного ящика, о них — в нашем руководстве по алиасам Gmail.
  • Домены, которые вообще не принимают почту, — опечатки вроде gmial.com или выдуманные домены. Их тоже стоит ловить: подтвердить там аккаунт невозможно.

Вариант 1: статический список в коде

На GitHub поддерживаются открытые списки одноразовых доменов на десятки тысяч записей. Проще всего загрузить один в множество и проверять домен при регистрации:

# Python
DISPOSABLE = set(open("disposable_domains.txt").read().split())

def is_disposable(email: str) -> bool:
    domain = email.rsplit("@", 1)[-1].strip().lower().rstrip(".")
    parts = domain.split(".")
    # и поддомены тоже: mail.tempdomain.com -> tempdomain.com
    return any(".".join(parts[i:]) in DISPOSABLE for i in range(len(parts) - 1))

Это ничего не стоит и не добавляет задержки. Минусы:

  • Список устаревает. Новые одноразовые домены появляются постоянно, и многие сервисы меняют домены именно для обхода списков. Список полугодовой давности не знает самых новых — а именно ими и пользуются нарушители.
  • Списки расходятся. В разных списках разные домены, в некоторых есть ошибки. Объединение нескольких даёт лучшее покрытие, но требует больше поддержки.
  • Нужна задача обновления и деплой (или перезагрузка) при каждом изменении.

Вариант 2: проверить почтовый сервер (MX)

DNS-запрос MX-записей домена показывает, может ли он принимать почту. Так ловятся опечатки и выдуманные домены, которых нет ни в одном списке:

# Python, с dnspython
import dns.resolver

def can_receive_mail(domain: str) -> bool:
    try:
        return len(dns.resolver.resolve(domain, "MX", lifetime=2)) > 0
    except dns.resolver.NXDOMAIN:
        return False
    except Exception:
        return True  # проблемы DNS — не вина пользователя: пропускаем

Кэшируйте результат по домену, держите таймаут коротким и никогда не отказывайте в регистрации из-за того, что у вашего DNS-резолвера был неудачный момент. Учтите: проверка MX не ловит одноразовые сервисы — они прекрасно принимают почту, это их работа.

Вариант 3: API, которое делает и то и другое и само обновляется

API выносит из вашего кода поддержку списка и MX-запросы. Attrelix объединяет несколько публичных списков, обновляет их ежедневно, хранит дату первого появления каждого домена, проверяет почтовый сервер и нормализует алиасы Gmail в одном вызове — а ещё оценивает сеть и устройство, так что вы получаете одно решение на регистрацию, а не только вердикт по почте. Поиск по домену можно бесплатно попробовать в проверке одноразовой почты.

curl https://attrelix.com/v1/check \
  -H "Authorization: Bearer $ATTRELIX_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"email":"someone@mailinator.com","ip":"203.0.113.9"}'

В ответе есть email.disposable, email.relay, email.mx и нормализованный адрес, а также общее решение и его причины.

Ошибки, из-за которых блокируются настоящие пользователи

  • Блокировка релеев. Приватным релеем Apple пользуются многие владельцы iPhone, входящие через Apple. Заблокировав его, вы блокируете их.
  • Блокировка при ошибках DNS. Таймаут не доказывает, что домен фальшивый.
  • Слишком широкие списки. Некоторые общественные списки включают небольших легальных провайдеров или корпоративные домены. Если клиент жалуется, добавьте домен в разрешённые, а не спорьте.
  • Сообщение об ошибке без выхода. «Неверный e-mail» сбивает с толку живого человека, который ввёл настоящий адрес. Объясните, что временные ящики не принимаются, и попросите другой адрес.

Чего не поймает проверка одноразовых адресов

Блокировка одноразовых доменов немного повышает цену злоупотребления: нарушитель переходит на Gmail. Дальше злоупотребление проявляется как много аккаунтов за одним ящиком или устройством. Здесь в дело вступает поиск мультиаккаунтов.

Итог

  • Различайте одноразовые домены, приватные релеи, бесплатные сервисы и мёртвые домены.
  • Статический список — хорошее начало, но он устаревает; обновляйте его или используйте API.
  • Используйте MX для мёртвых доменов и пропускайте при проблемах DNS.
  • Ожидайте, что нарушители перейдут на алиасы Gmail, и нормализуйте адреса.

Другие руководства