我正在尝试使用 c# 应用程序发送电子邮件,下一个代码正在运行。
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# 将尝试将发件人地址设置为 Sender.Name@gmail.com,但 SMTP 服务器拥有最终决定权。如果您有权以另一个用户的身份发送,这将有效,就像在您以管理员身份进行身份验证的 Exchange 服务器环境中一样。但是,Gmail 似乎不允许这样做。您需要以 Sender.name 身份登录才能以该用户身份发送电子邮件。
关于c# - 使用 SMTP 发送电子邮件并控制发件人地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6209163/