[ASP.NET] Enviar mail a través de Gmail/Hotmail/Live.com configurando mailSettings en el web.config (nuevo enableSsl="true" en ASP.NET 4.0)

Para enviar email a través de los servidores de Google (o Google App) o de desde Hotmail/Live.com es necesario configurar puertos específicos y habilitar SSL.
Ya nos comentaban como hacerlo por código José Alarcón Aguín

Como verán era necesario habilitar por codigo SSL con la propiedad EnableSsl (del SmptClient) . “Era” la única manera/forma antes de ASP.NET 4.0…

Un pedido hacia el equipo de ASP.NET era habilitarlo desde el web.config, y lo tenemos disponible… pueden verlo en el  al pedido en Microsoft Connect

 

Introducción: Sección mailSettings en el web.config

Desde ASP.NET 2.0, tenemos una sección de configuración mailSettings, donde podremos configurar la sección smtp

<system.net>
    <mailSettings>
     <smtp deliveryMethod="Network">
        <network …. />
     </smtp>
    </mailSettings>
</system.net>

En la parte smtp podremos configurar como la sección network (donde tenemos por medio de atributo de configuración la posibilidad de habilitar SSL)

Configurando la seccion mailSettings podremos enviar directamente sin previa configuración de la instancia de la clase SmtpClient, … un mensaje de correo:

SmtpClient smtpClient = new SmtpClient();
try
{
    smtpClient.Send(emailMsg);
}
catch (System.Net.Mail.SmtpException ex)
{
      //acciones
}

 

Configurando… con “enableSsl” (nuevo desde ASP.NET 4.0)

Podemos incluir "EnableSSL" (que es una opción de la clase System.Net.Mail.SmtpClient) desde el archivo de configuración (sección mailSettings) y allí configurando network para el envío a través de SMTP.

Ejemplo de configuración con Google App:

Datos de servidor SMTP:
Server SMTP: smtp.gmail.com / Port: 587 / Enable SSL
User: {user}@gmail.com // {user}@tudominio.com (Google App)
Configuración:
<system.net>
   <mailSettings>
     <smtp deliveryMethod="Network" from=username@gmail.com >
       <network enableSsl="true" 
                defaultCredentials="false" 
                clientDomain="www.tudominio.com"  
                host="smtp.gmail.com" 
                port="587" 
                userName="username@tudominio.com" 
                password="password"/>
     </smtp>
   </mailSettings>

Ejemplo para utilizar Live.com (nuestro Hotmail)

Datos de servidor SMTP:
Server SMTP: smtp.live.com / Port: 587 / Enable SSL
User: {user}@live.com
Configuración:
<system.net>
    <mailSettings>
      <smtp deliveryMethod="Network" from="usuario@live.com">
        <network enableSsl="true"
               defaultCredentials="false"
               clientDomain="www.tudominio.com"
               host="smtp.live.com"
               port="587"
               userName="usuario@live.com"
               password="password"/>
      </smtp>
    </mailSettings>
 
Puede ver mas info de los atributos de la sección network aquí

Notas sobre “enableSsl”

…from MSDN

(…)El atributo enableSsl especifica si se usa SSL para obtener acceso a un servidor de correo SMTP.La clase System.Net.Mail.SmtpClient sólo admite la extensión de servicio SMTP para SMTP seguro sobre Seguridad de la capa de transporte como se define en RFC 3207.En este modo, la sesión de SMTP

comienza en un canal no cifrado, a continuación, el cliente ejecuta un comando STARTTLS al servidor para intercambiar para proteger la comunicación mediante SSL.Vea RFC 3207 publicada por Internet Engineering Task Force (IETF) para obtener más información.

Un método de conexión alternativo es donde una sesión de SSL se establece al frente antes de que se envíe cualquier comando de protocolo. Este método de conexión a veces se denomina SMTP/SSL y de manera predeterminada usa el puerto 465.Actualmente no se admite este método de conexión alternativo utilizando SSL.(…)

 

Enlaces

 

JUTI XI – Presentación: ASP.NET MVC 2 con Entity Framework 4.0 en VS2010

Hace un par de semanas estuvimos con Cristina presentando en la JUTI algunas características de Entity Framework 4.0 y ASP.NET MVC 2 con Visual Studio 2010. Aquí va el post (que lo tenia en borrador) y la presentación que nos recordó Noelia que no la publicamos aún (así que aquí esta lo que debíamos)

Esto ya nos comento Diego, que presentó con Lautaro y el invitado especial Rodrigo Eirasca (de CGE Consultores de Gestión Empresaria),  el tema Certificar Calidad bajo ISO 9001:2008

Este es el 11° año de la JUTI (Jornadas Universitarias Tecnológicas sobre Informática) que se viene realizando en la UTN-FRRE (que este año esta de cincuentenario)

http://www.juti-frre.com.ar/
NOTA: Lástima que la web de la JUTI la utilicen para otros eventos, seria bueno tener un enlace “histórico” para no perder todas las versiones anteriores 🙁

Aquí les dejo el enlace a la presentación, y de paso la pruebo la incrustación directa 🙂