Предотвратить отскок исходящей электронной почты

Можно ли указать заголовок в исходящей почте (я использую PHPMailer), который сообщает принимающему серверу, что я не хочу отказов или ответов из офиса?

Вариант использования предназначен для проверки электронных писем во время регистрации (т. Е. Проверьте, существует ли адрес электронной почты и имеет ли зарегистрированный пользователь доступ к нему). Я не заинтересован в том, чтобы мне возвращались письма с отказами.

2 ответа

Отказов отправляются с пустым отправителем конверта, чтобы предотвратить отскок отказов и потенциально ввести цикл отказов.

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

MAIL From:<>

Хотя это почти самый эффективный способ предотвращения отскоков, у него есть пара потенциальных недостатков.

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

Скорее всего, вы не доставляете электронные письма непосредственно из своего приложения в MX принимающего домена, а скорее через свой MTA, который вы сами управляете или предоставляете по вашему выбору. Таким образом, этому MTA придется иметь дело со сбоями доставки, и если он не может отскочить, он может вместо этого производить шумные журналы.

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

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

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

Учитывая сложность реализации всего этого в приложении, большинство предпочитает просто отправлять почту через MTA и позволить пользователю повторно проверять свою электронную почту до тех пор, пока она (надеюсь) не прибудет.

Для отказов: если принимающий сервер поддерживает расширение DSN ESMPT RFC 3461, вы можете установить NOTIFY=NEVER в качестве опции в команду RCPT:

RCPT TO:<user@example.com> NOTIFY=NEVER

Если сервер не поддерживает расширение DSN, вам не повезло.

Я не верю, что это сработает для ответов ООО.

Другие вопросы по тегам