如何将值分配给MailMessage ReplyTo属性?
我想为.NET MailMessage设置ReplyTo值。
MailMessage.ReplyTo属性:
这种types的ReplyTo已经过时了。 请使用ReplyToList代替它可以接受多个地址。
MailMessage.ReplyToList属性:
获取或设置要回复邮件的地址列表。
但是,ReplyToList是ReadOnly。
我试过使用这样的MailMessage.Headers属性:
mail.Headers.Add("Reply-To", "johndoe@example.com");
如下所述: System.Web.Mail,OH MY!
但是,这似乎并不奏效。
如何设置MailMessage的ReadOnly属性ReplyToList的值?
ReplyToList
是MailAddressCollection的一个实例,它公开了Add方法。
要添加一个新的地址,你可以简单地将地址作为string传递
message.ReplyToList.Add("john.doe@example.com");
我喜欢数组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);
你不能说
message.ReplyToList = new MailAddressCollection();
创build一个新的集合。 但是,添加到现有的集合是你想要做的。
message.ReplyToList.Add(new MailAddress("foo@bar.net"));
我的答案与已经接受的答案不同。 不过,我觉得需要提供。
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 );
我使用了MailMessage.Sender属性。
mail.Sender = new Mail.MailAddress("system@example.com"); mail.From = new Mail.MailAddress("johndoe@example.com", "John Doe");
更多信息: MailMessage,发件人和来自属性之间的区别
您需要通过Add方法将ReplyTo Addresses列表添加到ReplyToList:
mail.Sender = new MailAddress(from, displayName); mail.From = new MailAddress(from, displayName); mail.ReplyToList.Add("replyToAddress@host.com");