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服务器有关,但我找不到任何确认。
答案 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属性,以避免垃圾邮件