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

标签 c# .net smtp

我正在尝试使用 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/

相关文章:

c# - 如何防止 Visual Studio 每次都构建项目?

ruby - SSL_connect returned=1 errno=0 state=未知状态 : unknown protocol

java - Spring中SMTP邮件程序的配置

c# - Itextsharp : Adjust 2 elements on exactly one page

c# - 如何在XAML中在Window之前声明资源?

c# - 在迭代器 block 和异步 block 中使用元组

email - javax.mail.MessagingException : Can't send command to SMTP host; nested exception is: javax.net.ssl.SSLKeyException:RSA 预主 key 错误

c# - MVC - 将动态添加的控件绑定(bind)到模型中的 List<T>

c# - 元组有什么用处?

c# - 获取通过 Ajax 传递的 Controller 中的 Json.Stringify 值