通过C#SmtpClient发送电子邮件时,为什么收件人会看到用户名而不是发件人或电子邮件?

时间:2016-04-06 18:38:45

标签: c# .net smtp gmail smtpclient

使用SmtpClient发送电子邮件时,电子邮件发送成功,但收件人将Smpt主机的用户名视为发件人,而不是MailMessage中指定的收件人或发件人电子邮件。

代码

MailMessage mail = new MailMessage("from@email.com", "to@email.com");
mail.Subject = "subject";
mail.Body = "body";
mail.IsBodyHtml = true;
mail.Sender = "from@email.com";

SmtpClient client = new SmtpClient();
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Host = smpt.gmail.com;
client.Credentials = new NetworkCredential("username@gmail.com", "password");
client.EnableSsl = true;
client.Send(mail);

收到的电子邮件显示username@gmail.com作为发件人/来自/回复地址,而不是from@email.com。

是否可以在收件人电子邮件中显示from@email.com作为发件人而不是username@gmail.com?

1 个答案:

答案 0 :(得分:1)

许多smtp提供商会使用client.Credentials覆盖您的mail.Sender,以尽量减少网络钓鱼攻击和垃圾邮件。所以,如果你将president@bankofamerica.com放在你的mail.Sender中,你就不会欺骗收件人,因为收件人会看到客户端。而不是.Credentials。