2010-01-16 2 views
2

Я пытаюсь реализовать метод Variable envelope return path (VERP) для управления адресами электронной почты (т. Е. Когда отправленное мной письмо отскакивает назад, я хочу, чтобы оно было отправлено на определенный адрес электронной почты, чтобы я мог обновлять свою базу данных, чтобы не отправлять электронную почту на этот адрес электронной почты в будущем).Как установить адрес отказов с помощью System.Net.Mail?

Согласно this article, можно указать адрес электронной почты, на который отправляется сообщение об отказе. Как вы это делаете в .Net?

Например, я ([email protected]) хочу отправить вам электронное письмо ([email protected]). Если [email protected] больше не существует, я хочу, чтобы ваш сервер отправил сообщение bounce на [email protected]). Таким образом, когда я получаю этот отскок электронной почты, я знаю, что [email protected] больше не является действительным адресом электронной почты, и я могу соответствующим образом обновить свою базу данных.

В этом примере адрес отказов будет: [email protected]
Как вы укажете его с помощью System.Net.Mail?

ответ

3

Суть в том, что вы не можете сделать это в .NET. Вы можете установить только адрес FROM, который System.Net.Mail также будет использовать в качестве конверта.

Чтобы сделать что-то вроде этого, вам нужно будет использовать 3rd объект участник SMTP, как тот, который я написал:

http://www.aspnetemail.com

В aspNetEmail, вы можете сделать что-то вроде:

EmailMessage msg = new EmailMessage(); 
msg.ReversePath = "[email protected] 

aspNetEmail будет использовать значение ReversePath в команде MAIL FROM во время сеанса SMTP. Я мог бы легко назвать это свойство «ReturnPath» или «EnvelopeFrom». Оглядываясь назад, EnvelopeFrom было бы лучшим именем.

+0

dave - что делает ваше свойство ReversePath? Когда я читаю rfc, он должен добавить путь к заголовку 'from', а затем принимающий сервер переместит его в заголовок возвращаемого пути? Это верно? что «одобренный rfc» способ справиться с отскоками? Я думаю, мне нужно будет удалить свой ответ ... – Ray

+0

Это, в основном, адрес конверта. Это значение, используемое во время сеанса SMTP, когда команда Mail FROM представлена ​​на сервере. –

+0

В этом случае не возможно сделать что-то вроде этого: message.Headers.Add («Envelope-From», «[email protected]»); Разумеется, то, что вы называете «ReversePath», должно быть задано в заголовке так или иначе. – Anthony