我的程序使用SHA-1证书进行SSL连接. SHA-2证书现在已被一些网络服务(Gmail)广泛使用.这会在电子邮件通知设置期间阻止到SMTP服务器的传入连接.
要发送电子邮件,我使用SmtpClient这样
using (var smtpClient = new SmtpClient(serverSettings.SmtpServerName,(int)serverSettings.SmtpPort)) { smtpClient.EnableSsl = serverSettings.SmtpUseSsl; smtpClient.UseDefaultCredentials = false; if (!string.IsNullOrEmpty(serverSettings.UserName) || !string.IsNullOrEmpty(serverSettings.EncryptedPassword)) { smtpClient.Credentials = new NetworkCredential(serverSettings.UserName,serverSettings.EncryptedPassword); } ... smtpClient.Send(message); }
解决方法
SHA-1与SHA-2完全不符合您的问题.对于不使用OAuth 2.0进行身份验证的应用程序(这将允许进行双重身份验证),而仅使用简单的密码,Google将考虑使用较不安全的应用程序.有关更多信息,请参阅
New Security Measures Will Affect Older (non-OAuth 2.0) Applications.
要使用OAuth 2.0与C#,请参阅SMTP and OAuth 2