来自MailMessage中的属性

时间:2013-09-05 12:30:57

标签: c# email smtp gmail

var client = new SmtpClient("smtp.gmail.com", 587) 
{
    Credentials = new NetworkCredential("mail@gmail.com", "supersecretpassword"),
    EnableSsl = true
};

MailMessage message = new MailMessage(new MailAddress(sender), 
                                      new MailAddress(recepient));
//message.From = new MailAddress(sender);
message.IsBodyHtml = true;
// message.To.Add(new MailAddress(recepient));
//message.ReplyToList.Add(new MailAddress(sender));
message.Subject = "subject";
message.Body = "title";

client.Send(message);

我正在使用上面的代码发送电子邮件,但是,如果收件人决定回复电子邮件,我希望回复发件人参数中提供的地址,但是当我收到电子邮件时,来自“发件人”字段给出smtp信息中提供的mail@gmail.com的地址。

我尝试设置replyto,replytolist和MailMessage中的属性,但它没有任何改变。

回复后我可以在gmail的“ReplyTo”中看到发件人地址,但是如果按下回复,默认接收者仍然是mail@gmail.com

我不应该因某种原因改变这种情况,或者我错过了什么?

EDIT 我怀疑这与使用临时gmail作为smtp服务器有关,但我找不到任何确认。

2 个答案:

答案 0 :(得分:0)

不赞成使用ReplyTo,ReplyToList是正确的方法。

如果您认为这是与gmail相关的问题,请尝试使用其他smtp(例如sendgrid

请记住,在" fake"的情况下,gmail使用Sender和From。您可以阅读here

帐户

答案 1 :(得分:0)

https://stackoverflow.com/a/3872880/744610

根据这个答案,这是因为我使用gmail作为smtp服务器,并且gmail不允许更改电子邮件的From / sender属性,以避免垃圾邮件