c# - 臭名昭著的“服务器不支持安全连接”。c#中的异常
问题描述
我有一个难题。我正在尝试使用以下代码片段通过简单的控制台应用程序发送电子邮件(显然删除了实际使用的电子邮件):
private static void sendEmail()
{
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("sender@gmail.com", "myPassword"),
EnableSsl = true
};
client.Send("sender@gmail.com", "receiver@gmail.com", "Email Subject", "Some body message");
}
然后我得到服务器不支持安全连接错误:
Unhandled exception. System.Net.Mail.SmtpException: Server does not support secure connections.
at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
at System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
现在它是一个真正的泡菜的原因是因为我有另一个控制台应用程序,它是我在 2021 年 7 月写的,它使用完全相同的方法(字面意思是我的方法的复制粘贴sendEmail()
),它没有任何问题。
当发生此类事情时(在一种环境中工作,但在另一种环境中不起作用),我最初的直觉是清除我的缓存。为我的 Visual Studio 完成了该操作,但不幸的是仍然是相同的结果
尽管知道我的代码可以在一个环境中工作,但我仍然继续尝试了一些 StackOverflow 建议的各种组合,例如:
- 使用不同的端口(25、465)
- 关闭/打开 Ssl (
EnableSsl = false
) - 明确指定
UseDefaultCredentials = true
或UseDefaultCredentials = false
- 明确指定
DeliveryMethod = SmtpDeliveryMethods.Network
我的 gmail 帐户打开了“不太安全的应用程序”,我按照Gmail 帮助进行了 POP/IMAP 设置。有问题的 Gmail 帐户不使用双重身份验证。我还遵循了各种建议,似乎是 stackOverflow 上关于这个问题的最新活动线程,但没有任何效果。
考虑到相同的设置在另一个控制台应用程序中没有问题,这让我有些吃惊。
任何帮助将不胜感激。
解决方案
推荐阅读
- powershell - 通过 PowerShell 提取 Office 365 组需要 ManagedBy 属性来显示 UPN 而不是显示名称
- xamarin - DevExpress - Web 仪表板在 iPad 中不可见,Xamarin.IOS 使用 WKWebView 渲染器加载它
- unity3d - Unity 镜像网络对象不在客户端上移动
- javascript - 如何通过在输入中输入视频 ID 来嵌入 youtube 视频?
- r - 为什么我没有在 R 中根据 id 和另一列获得正确的计数?
- java - 使用 AtomicReference 从另一个线程访问 Object
- android - 输入后在firefox mobile上以全屏模式显示丑陋的导航栏
- javascript - ReactJS 获取触发页面重新加载
- angular - Angular 7:JWT 过期时间检查错误
- android - Android:ImageView背景没有改变