Подтвердить что ты не робот

Как присвоить значение свойству MailMessage ReplyTo?

Я хочу установить значение ReplyTo для .NET MailMessage.

MailMessage.ReplyTo Свойство:

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

MailMessage.ReplyToList Свойство:

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

Но, ReplyToList - это ReadOnly.

Я попытался использовать свойство MailMessage.Headers следующим образом:

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

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

Но это не работает.

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Мне нравится синтаксис массива 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);

Ответ 3

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

message.ReplyToList = new MailAddressCollection();

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

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

Ответ 4

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

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 );

Ответ 6

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

            mail.Sender = new MailAddress(from, displayName);
            mail.From = new MailAddress(from, displayName);
            mail.ReplyToList.Add("[email protected]");

Ответ 7

MailMessage.ReplyToList.Add("[email protected], [email protected], [email protected]");

Ссылка https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.mailaddresscollection.add?redirectedfrom=MSDN&view=netframework-4.8#overloads


Я ожидаю, что также возможно опционально включить "понятное имя", используя вышеуказанный подход, возможно, с использованием этого формата: Jon Doe <[email protected] >

* Refs.:

https://askleo.com/why_are_email_addresses_sometimes_in_anglebrackets/, https://help.returnpath.com/hc/en-us/articles/220563147-What-is-a-Friendly-From-name-and-address-, https://wordtothewise.com/2014/12/friendly-email-addresses/. *