代码之家  ›  专栏  ›  技术社区  ›  Zack Peterson

如何为mailmessage replyto属性赋值?

  •  46
  • Zack Peterson  · 技术社区  · 14 年前

    我要设置.NET邮件的ReplyTo值。

    MailMessage.ReplyTo 财产:

    replyto对此类型已过时。 请使用replytolist代替 可以接受多个地址。

    MailMessage.ReplyToList 财产:

    获取或设置地址列表为 答复以获取邮件。

    但是,replyToList是只读的。

    我试过用 MailMessage.Headers 属性如下:

    mail.Headers.Add("Reply-To", "johndoe@example.com");
    

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

    但是,这似乎不起作用。

    如何设置邮件的readonly属性replyToList的值?

    6 回复  |  直到 7 年前
        1
  •  105
  •   Giorgi    14 年前

    ReplyToList 是的实例 MailAddressCollection 暴露的 Add 方法。

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

      message.ReplyToList.Add("john.doe@example.com");
    
        2
  •  8
  •   yzorg    12 年前

    我喜欢array 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);
    
        3
  •  6
  •   Anthony Pegram    14 年前

    你不能说

    message.ReplyToList = new MailAddressCollection();
    

    创建新集合。但是,添加到 现有的 收集就是你想要做的。

    message.ReplyToList.Add(new MailAddress("foo@bar.net"));
    
        4
  •  6
  •   Taersious    13 年前

    我的答案和已经给出的公认答案一样。但是,我觉得需要提供。

    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 );
    
        5
  •  2
  •   Community CDub    7 年前

    我用过 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

        6
  •  0
  •   Adel P.G.    7 年前

    您需要通过添加方法将replyto地址列表添加到replyto list中:

                mail.Sender = new MailAddress(from, displayName);
                mail.From = new MailAddress(from, displayName);
                mail.ReplyToList.Add("replyToAddress@host.com");