Существует ли внедряемый (не теоретический) способ доказать, принадлежит ли адрес электронной почты реальной учетной записи электронной почты?

Есть ли способ доказать, что определенный адрес электронной почты является «реальным», поэтому он относится к действительно существующей учетной записи электронной почты? Я получаю массу регистраций через электронные письма, которые действительны в соответствии с определением шаблона электронной почты, но на самом деле не существуют. Отправка на поддельные почтовые адреса стоит больших денег, так как мы (и другие) платим за почту (100 000 отправлений на поддельные почтовые аккаунты могут стоить вам четырехзначных номеров в год, просто чтобы показать номер). Я хочу проверить именно этот момент. Нам все равно, если адрес электронной почты отключен через 1 минуту.

Идеальное решение было бы одним слоем bash (который можно было бы назвать с каждым основным языком).

Что я сделал до сих пор:

  1. Проверка этой аналогичной нити 3yo , что просто неправильно для реального случая. Я хочу проверить, существует ли адрес электронной почты, в момент отправки почты (для предотвращения затрат).
  2. проверяя, является ли имя хоста pingable.
  3. проверяя, является ли адрес электронной почты pingable, как здесь . Я попытался перестроить это в сценарии bash, но не смог (выбор адреса был трудным!).

Чего я действительно хочу:

Надежная проверка, если почтовая учетная запись существует, реализуемой средним кодовым, в PHP или Java. Баш однострочный или php / java-библиотека, которая делает именно это. Свободный или коммерческий.

Я обеспечу щедрость!

Solutions Collecting From Web of "Существует ли внедряемый (не теоретический) способ доказать, принадлежит ли адрес электронной почты реальной учетной записи электронной почты?"

Это называется «двойной вариант».

  1. Пользователь вводит свой адрес электронной почты в свою регистрационную форму.
  2. Пользователь нажимает кнопку, в которой говорится «да, пожалуйста, напишите мне».
  3. Вы отправляете электронное письмо этому пользователю в строках «Привет, это для подтверждения вашей учетной записи. Пожалуйста, нажмите эту ссылку ».
  4. Как только ссылка будет нажата, у вас будет столько подтверждения, что вы когда-нибудь получите, и вы вряд ли будете спамером или ошибаетесь за одного.

Другие такие магические заклинания, чтобы не тратить деньги на электронные письма:

  • «используя почтовую программу, которая знает, что означает ошибка SMTP на 500 уровне» [aka, not mail() ] и удаление этого человека из вашего списка.
  • «Обработка отказов» и удаление этого человека из вашего списка.
  • «Рабочий процесс отмены подписки», который работает, а также удаляет этого человека из вашего списка. Я упоминал, что это должно сработать ?

Если вы [или кто-либо читает это] не собрали ваши списки адресов электронной почты добровольно, хотя, по крайней мере, на каком-то определенном уровне пользователей, выбирающих технику, которую мы, админы электронной почты, называем «pissing up the rope», где вы вешаете длину веревки с высокой место и посмотреть, как высоко он находится прямо под ним.

администраторы электронной почты могут выбрать, чтобы все попытки отправить «ОК», даже если адрес, который вы отправляете, не существует. Я делаю это частично, чтобы затруднить спаммерам «узнать» адрес в моем домене.

Лучшей практикой было бы требование регистрации через веб-форму с капчей (какого-то типа), который затем отправляет письмо с подтверждением, а не принимает массовую регистрацию по электронной почте. (если вы этого уже не делаете).

Если у вас есть достаточная история для создания, вам может понадобиться создать черный список известного плохого адреса электронной почты для ссылки перед отправкой. Сколько из ваших регистраторов – mailadmin@yourdomain.com или root@google.com ?

Для моего бизнеса мы размещаем сервер SMTP локально, чтобы избежать затрат, связанных с неудачной доставкой в ​​законных кампаниях по электронной почте. В противном случае я буду сжигать деньги и лопать песок в море.

Протокол SMTP не предназначен для обеспечения возможности проверки наличия почтового ящика.

При доставке электронной почты обычно выполняются следующие шаги:

Проверьте запись MX почтового домена

Письмо на somebody@example.com проверяет наличие записей MX для example.com . Если есть некоторые, с наивысшим приоритетом свяжутся, чтобы принять почту. Если он не отвечает, будет связан любой существующий MX с более низким приоритетом.

Если нет записи MX, будет выполнен поиск записи «A» example.com , и этот IP-адрес будет подключен для приема почты.

Подключение к серверу, упомянутому в записи MX или A

С получающим почтовым сервером связывается. Если он существует, почта MIGHT будет доставлена. Протокол SMTP требует, чтобы отправляющий почтовый сервер отправлял получающий почтовый адрес, отправляющий почтовый адрес, а затем сам почтовый адрес.

Принимающий почтовый сервер пытается доставить почту в почтовый ящик пользователей

Это может закончиться по нескольким причинам. И важная информация заключается в том, что этот шаг может иметь место ПОСЛЕ того, как отправляющий почтовый сервер получил положительный ответ, что почта была получена, и соединение было прекращено. Таким образом, отправляющий почтовый сервер не может понять, что доставка не удалась.

Получающий почтовый сервер отправит сообщение об отказе в этом случае. Но эта отказоустойчивая почта отправляется на почтовый адрес, который предназначен для получения ошибок. Это может быть оригинальный почтовый адрес, но может быть и другим. Кроме того, ответственный почтовый сервер для получения отказов не должен быть сервером, отправившим оригинальную почту.

На этом этапе должно быть довольно ясно, что электронная почта действительно является асинхронным средством обмена информацией, практически без надёжности.

Некоторые методы делают это возможным, хотя надеются на небольшие улучшения: обычно отправка сообщений отказов – не лучшая идея. Хорошо настроенные почтовые серверы отклоняют получение почты для почтовых ящиков, у которых есть какие-либо проблемы, например, они не существуют или полны.

С другой стороны, новая большая черная дыра для почты – это спам-фильтры. Обычно они настраиваются пользователем, и почтовый сервер с радостью получает любую почту для существующего почтового ящика, но затем спам автоматически удаляется или перемещается в папку со спамом и игнорируется.

Кроме того, существует технология, подобная greylisting, которая отвечает на любую попытку доставки почты с временным состоянием отказа. Обычный почтовый сервер будет пытаться в более позднее время, и в конечном итоге таймер greylisting завершен (может быть более часа в некоторых настройках), и выполняется REAL попытка доставки с реальным окончательным отказом или акцептом. Между тем, почтовый сервер надеется, что он включил спам-фильтры для обнаружения новых волн спама, а greylisting действительно только покупает некоторое время. Любая обычная попытка доставки известными почтовыми серверами будет успешной, потому что успешная доставка почты без спама становится белой.

После всего описания того, как работает настоящая почта, я думаю, вы можете видеть, что действительно нет способа «просто» определить, действительно ли почтовый адрес действительно существует. Единственное, что вы можете сделать, это попытаться определить, существует ли она, и если вам будет приятно заявлено, что почтовый ящик не существует, поскольку целевой почтовый сервер отказывает в доставке, вы можете предположить, что вы, вероятно, больше не должны пытаться доставлять почту этой цели ,

Любой другой результат ничего вам не говорит. И вы также заметите, что обнаружение того, существует ли почтовый адрес, требует, чтобы вы отправляли сообщение об улове-22.

Вы действительно должны внедрить надлежащее управление откатом и определение отказа доставки, чтобы удалить очевидные недостающие почтовые адреса. Все остальное невозможно обнаружить.