Предотвратить отскок исходящей электронной почты
Можно ли указать заголовок в исходящей почте (я использую 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, вам не повезло.
Я не верю, что это сработает для ответов ООО.