Send an email using SMTP and control sender address(使用 SMTP 发送电子邮件并控制发件人地址)
问题描述
我正在尝试使用 c# App 发送电子邮件,下一个代码正在运行.
I'm trying to send an email using c# App, the next code is working.
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) 作为发件人,
But Gmail's SMTP server puts gmail e-mail address (Ryan.White@gmail.com) as the sender,
不管 MSG.FROM 地址 (Sender.name@gmail.com).
regardless the MSG.FROM address (Sender.name@gmail.com).
是否可以使用 C#/.NET 发送电子邮件并控制发件人地址?
或者发送一封不经过身份验证的电子邮件?
Or alternatively send an email without authentication?
我知道在 UNIX 中,您可以在邮件"命令中控制发件人地址.
I know that in UNIX you can control the sender address in 'Mail' command.
推荐答案
Gmail 这样做是出于安全原因,否则垃圾邮件发送者很容易发送看似来自虚假地址的电子邮件.
Gmail is doing that for security reasons, otherwise it would be easy for spammers to send emails that appear to come from fake addresses.
您已正确编码,C# 将尝试将发件人地址设置为 Sender.Name@gmail.com,但 SMTP 服务器拥有最终决定权.如果您有权以其他用户的身份发送邮件,这将起作用,例如在 Exchange 服务器环境中您被验证为管理员的情况.但是,Gmail 似乎不允许这样做.您需要以 Sender.name 身份登录才能以该用户身份发送电子邮件.
You have coded this correctly, and C# will attempt to set the from address as Sender.Name@gmail.com, but the SMTP server has the final say. If you had authorization to send as another user, this would work, like in the case of an Exchange server environment where you are authenticated as an admin. However, Gmail doesn't seem to allow this. You would need to login as Sender.name to be able to send emails as that user.
这篇关于使用 SMTP 发送电子邮件并控制发件人地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 SMTP 发送电子邮件并控制发件人地址
基础教程推荐
- rabbitmq 的 REST API 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01