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

时间:2011-06-02 00:15:58

标签: c# .net smtp

我正在尝试使用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中你可以在'Mail'命令中控制发件人地址。

1 个答案:

答案 0 :(得分:4)

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

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