我必须连接到我们一个客户端的SMTP服务器,并且使用TLS v1通过SSL进行连接 为此,我使用以下代码创建了一个简单的控制台POC:
try
{
MailMessage mail = new MailMessage();
System.Net.Mail.SmtpClient SmtpServer = new System.Net.Mail.SmtpClient("smtpout.xyz.com");
Console.WriteLine("sending mail...");
mail.From = new System.Net.Mail.MailAddress("test@domain.com");
mail.To.Add("test2@domain.com");
mail.Subject = "TEST";
mail.Body = "TEST DATA";
SmtpServer.Port = 25;
SmtpServer.Credentials = new System.Net.NetworkCredential("", "");
SmtpServer.EnableSsl = True;
SmtpServer.UseDefaultCredentials = False;
SmtpServer.Send(mail);
Console.WriteLine("mail sent successfully");
}
catch(Exception ex)
{
throw ex;
}
但是这给出了一个非常普通的错误,该错误导致操作超时。当我尝试通过端口25使用非SSL SMTP服务器并且没有网络凭据时,邮件将立即触发。
请注意,不能通过网络负载平衡器直接访问客户端的SMTP服务器。我以为这个问题可能是由于计算机与SMTP服务器之间的不正确握手造成的,所以我也将SMTP服务器的证书放在了计算机的受信任的根证书存储中,但是仍然存在问题。
在TLS 1.1 / 1.2协议的情况下,我必须在配置中采取哪些额外步骤。我还尝试了使用STARTTLS命令的第三方库,但是还会出现错误,即“连接尝试失败,因为连接的一方在一段时间后未正确响应,或者建立的连接失败,因为连接的主机已失败回应”。
请提出帮助。