.net ssl smtp system.net

.net - ¿Hay alguna manera de saber si un servidor SMTP espera que un cliente se conecte usando SSL "implícito" versus SSL "explícito"?



system.net (1)

SSL puede ser "explícito" o "implícito" como se explica en este enlace:

http://help.globalscape.com/help/secureserver2/Explicit_versus_implicit_SS.htm

System.Net.Mail solo admite SSL "explícito", como se explica aquí:

http://blogs.msdn.com/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

Por lo tanto, estoy tratando de usar System.Net.Mail para conectarme a un servidor SMTP sobre el cual no tengo ningún control, y está fallando. ¿Cómo puedo estar seguro de que está fallando porque el servidor quiere una conexión SSL "implícita"? ¿Qué prueba puedo hacer desde el lado del cliente?


Por lo general, esto se rige por la convención. SMTP ejecutándose en el puerto 25 (el caso normal) usa SSL explícito. SMTPS que se ejecuta en el puerto 465 usa SSL implícito. El envío de correo que se ejecuta en el puerto 587 usa SSL explícito.

Para estar seguro, telnet al puerto, como en "telnet mail.example.com 25". Si ve un banner de texto plano donde el servidor se identifica a sí mismo, entonces está tratando con SSL explícito. Si te conectas con éxito y no ves nada, entonces estás lidiando con SSL implícito.