我想为.NET MailMessage设置ReplyTo值。
此类型的ReplyTo已废弃。 请使用ReplyToList代替哪个 可以接受多个地址。
获取或设置地址列表 回复邮件。
但是,ReplyToList是ReadOnly。
我尝试使用MailMessage.Headers这样的属性:
mail.Headers.Add("Reply-To", "johndoe@example.com");
如此处所述:System.Web.Mail, OH MY!
但是,这似乎不起作用。
如何设置MailMessage的ReadOnly属性ReplyToList的值?
答案 0 :(得分:106)
ReplyToList
是MailAddressCollection的一个实例,它公开了Add方法。
要添加新地址,您只需将地址作为字符串
传递即可 message.ReplyToList.Add("john.doe@example.com");
答案 1 :(得分:8)
我喜欢数组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);
答案 2 :(得分:6)
你不能说
message.ReplyToList = new MailAddressCollection();
创建新集合。但是,添加到现有集合是您要执行的操作。
message.ReplyToList.Add(new MailAddress("foo@bar.net"));
答案 3 :(得分: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 );
答案 4 :(得分:2)
我改为使用MailMessage.Sender属性。
mail.Sender = new Mail.MailAddress("system@example.com");
mail.From = new Mail.MailAddress("johndoe@example.com", "John Doe");
更多信息:MailMessage, difference between Sender and From properties
答案 5 :(得分:0)
您需要通过添加方法将ReplyTo地址列表添加到ReplyToList:
mail.Sender = new MailAddress(from, displayName);
mail.From = new MailAddress(from, displayName);
mail.ReplyToList.Add("replyToAddress@host.com");
答案 6 :(得分:0)
MailMessage.ReplyToList.Add("johndoe@example.com, janedoe@example.com, xxxx@yyyy.com");
我希望也可以使用上述方法(可能使用以下格式)选择性地添加“友好名称”: Jon Doe <jondoe@example.com
> < / p>
参考号: 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/。