Обнаружение неудачной отправки электронной почты с использованием Gmail в качестве ретранслятора - PullRequest
3 голосов
/ 12 октября 2011

Я написал простое приложение ASP.NET, которое отправляет почту на указанный адрес электронной почты (для клиентов рассматриваемой компании, а не спама =)), и часть требований заключалась в том, что если сообщение не будет отправлено, приложение будетзапишите это.Нет проблем, подумал я, я просто поймаю SmtpFailedRecipientsException и сделаю заметку.Оказывается, что ретрансляторы Gmail не выдают исключений при отправке на недействительные адреса электронной почты, они просто принимают отправленную почту, а затем, если отправка не удалась, Gmail отправляет вам электронное письмо обратно, сообщая, что получателю не удалось отправить почту.У меня вопрос: если мой клиент использует Google Business для своей почты (а они есть), есть ли способ настроить отправку, чтобы я получал это исключение при сбое отправки?

Ответы [ 2 ]

3 голосов
/ 12 октября 2011

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

Нашел эту статью о Codeproject, которая просматривает сообщения в папке входящих сообщений gmail.Это может поставить вас на правильный путь.http://www.codeproject.com/KB/applications/ReadGmailInboxMessage.aspx

1 голос
/ 12 октября 2011

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

...