使用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中,您可以在"邮件"命令中控制发件人地址。
Gmail这样做是出于安全考虑,否则垃圾邮件发送者很容易发送来自虚假地址的电子邮件。
您已对此进行了正确编码,C#将尝试将from地址设置为Sender.Name@gmail.com,但SMTP服务器拥有最终发言权。如果您有权以另一个用户的身份发送,这将起作用,就像在Exchange服务器环境中您作为管理员进行身份验证一样。然而,Gmail似乎不允许这样做。您需要以Sender.name的身份登录,才能以该用户的身份发送电子邮件。