如何为MailMessage ReplyTo属性分配值?

Zac*_*son 49 .net email

我想为.NET MailMessage设置ReplyTo值.

MailMessage.ReplyTo属性:

对于此类型,ReplyTo已废弃.请使用ReplyToList代替,它可以接受多个地址.

MailMessage.ReplyToList属性:

获取或设置要为邮件消息回复的地址列表.

但是,ReplyToList是ReadOnly.

我试过像这样使用MailMessage.Headers属性:

mail.Headers.Add("Reply-To", "johndoe@example.com");
Run Code Online (Sandbox Code Playgroud)

如下所述:System.Web.Mail,OH MY!

但是,这似乎不起作用.

如何设置MailMessage的ReadOnly属性ReplyToList的值?

Gio*_*rgi 110

ReplyToList是一个MailAddressCollection的实例,它公开了Add方法.

要添加新地址,您只需将地址作为字符串传递即可

  message.ReplyToList.Add("john.doe@example.com");
Run Code Online (Sandbox Code Playgroud)

  • 呸! 那只是迟钝。为什么不允许分配一组`MailAddress`?? (2认同)

yzo*_*org 9

我喜欢数组init语法,它会为你调用Add().

var msg = new MailMessage("noreply@example.com", mailTo) {
    Subject = "my important message",
    Body = this.MessageBody,
    ReplyToList = { mailTo } // array init syntax calls Add()
};
mailClient.Send(msg);
Run Code Online (Sandbox Code Playgroud)


Ant*_*ram 6

你不能说

message.ReplyToList = new MailAddressCollection();
Run Code Online (Sandbox Code Playgroud)

创建新集合.但是,添加到现有集合是您要执行的操作.

message.ReplyToList.Add(new MailAddress("foo@bar.net"));
Run Code Online (Sandbox Code Playgroud)


Tae*_*ous 6

我的回答与已经接受的答案没有什么不同.但是,我觉得需要提供.

var fromEmail = new MailAddress("foobar@example.com", "Foo Bar");
var replyEmail = new MailAddress("foo@example.com", "Foo Example");
var msgEmail = new MailMessage { From = fromEmail };
msgEmail.ReplyToList.Add( replyEmail );
Run Code Online (Sandbox Code Playgroud)