我正在尝试使用 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);
Run Code Online (Sandbox Code Playgroud)
但是 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 身份登录才能以该用户身份发送电子邮件。