Один из наших клиентов столкнулся с проблемой после создания новой сертификации SSL для SMTP. Outlook хорошо работает с SSL, отправляя и получая электронные письма, но в vb.net клиент SMTP выдает ошибку «Удаленный сертификат недействителен в соответствии с процедурой проверки».
Когда smtpClinet.UseSSL = false, то работает нормально.
Клиент предложил добавить цепной сертификат в «Доверенные корневые центры сертификации» как для текущего пользователя, так и для локального компьютера.
Проблема не решена.
Вот код для установки в объекте SMTPclient:
oSMTPclient = New SmtpClient() With {
.UseDefaultCredentials = False
}
If sDomain = "" Then
oSMTPclient.Credentials = New NetworkCredential(sUser, sPassword)
Else
oSMTPclient.Credentials = New NetworkCredential(sUser, sPassword, sDomain)
End If
oSMTPclient.Host = sHost
oSMTPclient.Port = iPort
oSMTPclient.EnableSsl = bSSL
sMailFromAddress = sFromAddress
sMailFromAlias = sFromAlias
After I read some in stakoverflow, planning to add the below in code. Will it solve the problem? As its in client end, I cant try in my local.
Private Shared Function customCertValidation(ByVal sender As Object, ByVal cert As X509Certificate, ByVal chain As X509Chain, ByVal errors As SslPolicyErrors) As Boolean
Return True
End Function
ServicePointManager.ServerCertificateValidationCallback = New Security.RemoteCertificateValidationCallback(AddressOf customCertValidation)
ServicePointManager.Expect100Continue = True
In client end, have to give workaround for SMTP over SSL to work.