我的程序使用SHA-1证书进行SSL连接.现在,某些Web服务(Gmail)已广泛使用SHA-2证书.这会导致在电子邮件通知设置期间阻止到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);
}
Run Code Online (Sandbox Code Playgroud)
我无法使用此代码发送电子邮件,我不想在我的Gmail帐户中允许"安全性较低的应用程序".
如何实现或切换到电子邮件通知的SHA-2证书?
SHA-1与SHA-2完全无关.对于不使用OAuth 2.0进行身份验证的应用程序(允许双因素身份验证)而不是简单密码的谷歌应用程序会考虑"安全性较低的应用程序".有关详细信息,请参阅新的安全措施将影响较旧的(非OAuth 2.0)应用程序.
有关在C#中使用OAuth 2.0,请参阅SMTP和OAuth 2