使用SMTP发送电子邮件并控制发件人地址

本文关键字:控制 地址 电子邮件 SMTP 使用 | 更新日期: 2023-09-27 17:58:17

我正在尝试使用c#App发送电子邮件,下一个代码正在工作。

SmtpClient MailClient = new SmtpClient("smtp.gmail.com");
MailClient.EnableSsl = false;
MailClient.Credentials = new NetworkCredential("Ryan.White", "Password");
MailMessage Msg = new MailMessage();
Msg.From = new MailAddress("Sender.name@gmail.com");
Msg.To.Add(new MailAddress("Ryan.White@gmail.com"));
Msg.Subject = "testSub";
Msg.Body = "testBody";
MailClient.Send(Msg);

但Gmail的SMTP服务器会将Gmail电子邮件地址(Ryan.White@gmail.com)作为发送方,

不管MSG.FROM地址(Sender.name@gmail.com)。

是否可以使用C#/.NET发送电子邮件并控制发件人地址

或者在没有身份验证的情况下发送电子邮件?

我知道在UNIX中,您可以在"邮件"命令中控制发件人地址。

使用SMTP发送电子邮件并控制发件人地址

Gmail这样做是出于安全考虑,否则垃圾邮件发送者很容易发送来自虚假地址的电子邮件。

您已对此进行了正确编码,C#将尝试将from地址设置为Sender.Name@gmail.com,但SMTP服务器拥有最终发言权。如果您有权以另一个用户的身份发送,这将起作用,就像在Exchange服务器环境中您作为管理员进行身份验证一样。然而,Gmail似乎不允许这样做。您需要以Sender.name的身份登录,才能以该用户的身份发送电子邮件。