2010-03-31 2 views
3

Я использую C# asp.net для отправки сообщений электронной почты. Если адрес электронной почты, отправленный с (message.From), может быть любым адресом, все еще существует вероятность того, что запрос приложений сообщит, если на сервер был отправлен ответ.Ловля отскок электронной почты в ASP.NET C#

ответ

1

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

Поиск по google для asp.net pop3, чтобы найти идеи и модуль, которые так думают.

Я испытал себя сам, многие из них, и для меня один из лучших - это http://www.aspnetpop3.com/, который может читать и что вы говорите - но это не бесплатно.

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

0

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

Вы можете проверить на наличие ошибок в момент отправки по ловли SmtpException:

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

0

Если у вас есть доступ к структуре папок smtp, вы можете анализировать файлы в папке inetpub/mailroot/badmail. Эти файлы будут иметь адрес и причину не доставки в виде простого текста.

0

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

Вам нужно добавить ответ-ответ на сообщение, отправляемое с помощью клиента smtp.

message.ReplyToList.Add("<reply-to-address-for-detecting bouncing back emails>"); 

Затем вам необходимо следить за ответом на адрес. Теперь, чтобы контролировать это с помощью C#, вам нужно создать POPClient(), связанный с повторным обращением, используя службу или процедуру периодической проверки. Here - ссылка StackOverflow, показывающая, как обнаружить полученную электронную почту.

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

Смежные вопросы