Давайте разберемся, как протекает почта (чрезмерно упрощенный):
Your App > Your Mail Server > Destination Mail Server > Recipient
| ^
| |
+ ---- if recipient on the same server ----+
Итак, когда вы отправить письмо получателю, который находится на том же сервере, например, если в том же домене, что и ваш Сервер Exchange является внутренне, тогда Сервер знает, существует ли ваш получатель или нет, и может сразу ответить вам.
Однако при отправке почты внешнему получателю ваш сервер отправит электронное письмо на почтовый сервер (указанный в записи MX имени домена). Когда это происходит, происходят две вещи:
- Вы сервер с радостью принимает его от вас, и посылает вам принятым для доставки ACK сразу
- Затем он пытается переслать почту на внешний сервер на основе его текущей очереди
Это не заставит ваше приложение ждать бесконечно, пока очередь не очистится, и она фактически отправит сообщение. Если бы это было так, есть вероятность, что ваше приложение может ждать до 4 дней!
Что касается другого вопроса/ответа, на который вы ссылаетесь, они предполагают, что получатель находится на одном сервере.
Как правило, при отправке писем с использованием smtpClient
через ваше приложение вы не подключаетесь напрямую к серверу получателя. Вы используете либо интеллектуальный хост, либо собственный почтовый сервер. Вы проверяете подлинность на своем сервере, который затем будет передавать вашу почту.Способы использования VRFY
и/или RCPT TO
будут работать против вашего сервера. Пока получатель находится на одном сервере, вы (smtpClient
, если на то пошло) будут работать против вашего собственного сервера и который в состоянии ответить. Однако, когда вы передаете свою почту для внешнего сервера, ваш сервер будет принимать вашу почту только и не сможет ответить.
Если вам нужен ответ, вам необходимо будет напрямую подключиться к целевому серверу и выдать команды SMTP
. В этом случае вы можете получать или не получать ответ. На этот вопрос также четко ответил ответ. В качестве меры защиты от спама почти все серверы используют tarpitting (другими словами, задержку или черную дыру) для защиты от перечисления своих пользователей.
Это не имеет значения, если вы отправляете почту «[email protected]» или «[email protected]», до тех пор, как это внешний сервер. Иллюстрация, приведенная выше, слишком упрощена. На самом деле может существовать несколько промежуточных сервисов, которые разрешают DNS для вашего почтового сервера.
Вы привели пример «http://verify-email.org/». Но вы читали, что там написано на домашней странице?
Этот инструмент проверки подлинности электронной почты фактически подключается к почтовому серверу, а проверяет, существует ли почтовый ящик или нет.
Что означает, что он напрямую подключается к серверу MX домена, к которому вы пытаетесь отправить почту. Даже вы можете это сделать. Единственное отличие в том, что в реальной жизни наши приложения не могут этого сделать. Вы подключаетесь к локальному smarthost/relay.
Кроме того, на главной странице этого сервиса говорит:
Что проверяется: Формат: "[email protected]"; Допустимый домен: Недопустимый "[email protected]"; Действительный пользователь: проверьте, является ли пользователь; и почтовый ящик действительно существует
Это означает, что, прежде чем пытаться соединиться с сервером назначения, эта служба выполняет проверку формата (возможно регулярное выражение), а затем делает DNS поиска, чтобы проверить, если домен является действительным или а затем пытается подключиться к целевому серверу только после этого.
Помните, что даже эта служба не сможет точно сказать, что вы хотите о существовании пользователя для всех почтовых служб. Например, я использовал tarpitting на моем почтовом сервере, и, следовательно, даже эта служба не сможет сказать вам, существует ли я или нет. Мой почтовый сервер никогда не ответит. «verify-email.org« всегда будет возвращать вам ok
.
BTW: "verify-email.org" будет чаще, чем не вернуть вам это:
550 5.7.1 Service unavailable; Client host [verify-email.org] blocked using Spamhaus;
Этот сервис уже заблокирован несколькими провайдерами анти-спам сервис !!
Надеюсь, что это поможет.
.
Спасибо, теперь я понимаю, что происходит. Думаю, тогда лучше не беспокоиться о неудавшихся получателях из моей системы и позволить почтовому сервису справиться с этим самим. –