2008-09-09 5 views
12

Когда вы отправляете электронное письмо с использованием пространства имен C# и System.Net.Mail, вы можете установить свойства «От» и «Отправитель» в объекте MailMessage, но ни одно из них не позволяет вам отправлять MAIL FROM и адрес который переходит в раздел DATA, отличающийся друг от друга. MAIL FROM получает значение «From», а если вы установите «Sender», он добавляет еще одно поле заголовка в раздел DATA. В результате «От [email protected] от имени [email protected]» это не то, что вы хотите. Я что-то упускаю?Как настроить почтовый конверт SMTP с помощью System.Net.Mail?

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

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

ответ

1

ли вы имеете в виду это ?:

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

//set the addresses 
mail.From = new MailAddress("[email protected]"); 
mail.To.Add("[email protected]"); 

//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

+0

Нет, адрес mail.From будет определять MAIL FROM в конверте и в разделе DATA. Я хочу сделать эти два разных адреса. – 2008-09-09 13:22:19

+0

почта. Из адреса не обязательно будет определяться MAIL FROM в конверте. Это зависит от способа доставки. – bzlm 2009-03-17 07:54:49

4

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

  • mail.From указать электронную почту от видимых конечному пользователю
  • mail.Sender указывает конверт ПОЧТА ОТ

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

+2

Нет, как упоминалось в моем вопросе: и если вы установите «Отправитель», он добавит еще одно поле заголовка в раздел DATA. В результате «От [email protected] от имени [email protected]» это не то, что вы хотите. – 2008-12-23 18:20:41

7

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

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

There's a similar question on MSDN here.

2

Если добавить следующие строки Обратный адрес и ответ-To заголовки установлены в заголовке письма.

Dim strReplyTo As String = "[email protected]" 
message.ReplyToList.Add(strReplyTo) 
message.Headers.Add("Return-Path", strReplyTo) 

И если вы нажмете на ответ набор электронной почты в адрес для ответа

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