2010-05-03 4 views
41

Я хочу установить значение ReplyTo для .NET MailMessage.Как присвоить значение свойству MailMessage ReplyTo?

MailMessage.ReplyTo недвижимости:

ReplyTo является для этого устарел типа. Вместо этого используйте ReplyToList, который может принимать несколько адресов.

MailMessage.ReplyToList недвижимости:

Получает или задает список адресов ответ на сообщения электронной почты.

Но, ReplyToList is ReadOnly.

Я пытался использовать MailMessage.Headers свойство как это:

mail.Headers.Add("Reply-To", "[email protected]"); 

, как описано здесь: System.Web.Mail, OH MY!

Но, это не похоже на работу.

Как установить значение (ы) свойства ReadOnly MailMessage ReplyToList?

+0

Именно поэтому нам необходимо [** Warlords из документации **] (HTTP: //meta.stackoverflow .com/вопросы/306213/военачальники-оф-документации-ваш-вопросы-ответа?cb = 1). Это бесконечно более полезно, чем страница MSDN в [MailMessage.ReplyToList'] (https://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.replytolist (v = vs.110) .aspx) – KyleMit

ответ

92

ReplyToList является примером MailAddressCollection, который предоставляет метод Add.

Чтобы добавить новый адрес, который вы можете просто передать адрес в виде строки

message.ReplyToList.Add("[email protected]"); 
6

Вы не можете сказать

message.ReplyToList = new MailAddressCollection(); 

Чтобы создать новую коллекцию. Однако добавление к существующей коллекции - это то, что вы хотите сделать.

message.ReplyToList.Add(new MailAddress("[email protected]")); 
6

Мой ответ не отличается от принятых ответов уже данных. Однако я чувствовал, что это необходимо.

var fromEmail = new MailAddress("[email protected]", "Foo Bar"); 
var replyEmail = new MailAddress("[email protected]", "Foo Example"); 
var msgEmail = new MailMessage { From = fromEmail }; 
msgEmail.ReplyToList.Add(replyEmail); 
8

Мне нравится синтаксис массива init, который будет вызывать Add() для вас.

var msg = new MailMessage("[email protected]", mailTo) { 
    Subject = "my important message", 
    Body = this.MessageBody, 
    ReplyToList = { mailTo } // array init syntax calls Add() 
}; 
mailClient.Send(msg); 
0

Вам нужно добавить список из ReplyTo адресов в ReplyToList методом Add:

  mail.Sender = new MailAddress(from, displayName); 
      mail.From = new MailAddress(from, displayName); 
      mail.ReplyToList.Add("[email protected]"); 
Смежные вопросы