Как вы можете установить SMTP конверт MAIL FROM с помощью System.Net.Mail? - PullRequest
12 голосов
/ 09 сентября 2008

Когда вы отправляете электронное письмо, используя C # и пространство имен System.Net.Mail, вы можете установить свойства «От» и «Отправитель» для объекта MailMessage, но ни один из них не позволяет вам сделать MAIL FROM и from адрес, который входит в раздел DATA отличается друг от друга. Для MAIL FROM устанавливается значение свойства «From», а если вы задаете «Sender», оно добавляет только другое поле заголовка в раздел «DATA». Это приводит к «От X@Y.COM от имени A@B.COM», что не то, что вы хотите. Я что-то упустил?

Вариант использования контролирует назначение NDR для информационных бюллетеней и т. Д., Которые отправляются от имени другого лица.

В настоящее время я использую aspNetEmail вместо System.Net.Mail, поскольку это позволяет мне делать это правильно (как и большинство других библиотек SMTP). В aspNetEmail это выполняется с помощью свойства EmailMessage.ReversePath.

Ответы [ 4 ]

7 голосов
/ 17 марта 2009

MailMessage.Sender всегда вставляет заголовок Sender (интерпретируется как от имени в вашем почтовом клиенте).

Если вы используете Network способ доставки на SmtpClient, .Sender также изменит отправителя в конверте. Использование метода доставки PickupDirectoryFromIis предоставит IIS определять отправителя конверта, а IIS будет использовать адрес From, а не адрес Sender.

Схожий вопрос по MSDN здесь.

4 голосов
/ 22 декабря 2008

Я только что нашел, как это сделать:

  • mail.From указать адрес электронной почты от видимого до конечного пользователя
  • mail.Sender указывает конверт MAIL FROM

Вот и все (даже если мне понадобилось время, чтобы понять это)

2 голосов
/ 27 сентября 2016

Если вы добавляете следующие строки, в заголовке письма указываются Return-Path и Reply-To.

Dim strReplyTo As String = "email@domain.tld"
message.ReplyToList.Add(strReplyTo)
message.Headers.Add("Return-Path", strReplyTo)

И если вы нажмете на кнопку «Ответить», электронная почта будет установлена ​​на адрес для ответа

1 голос
/ 09 сентября 2008

Ты имеешь в виду это?:

//create the mail message
 MailMessage mail = new MailMessage();

 //set the addresses
 mail.From = new MailAddress("me@mycompany.com");
 mail.To.Add("you@yourcompany.com");

 //set the content
 mail.Subject = "This is an email";
 mail.Body = "this is a sample body with html in it. <b>This is bold</b> <font color=#336699>This is blue</font>";
 mail.IsBodyHtml = true;

 //send the message
 SmtpClient smtp = new SmtpClient("127.0.0.1");
 smtp.Send(mail);

С http://www.systemnetmail.com/faq/3.1.2.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...