Probar el envio de mails sin usar un servidor SMTP
Todos sabemos que los adminsitradores de red son gente dura de roer. No conozco muchos que estén contentos dandonos acceso por SMTP a 'su' servidor de correo (cosa que me parece muy razonable dicho sea de paso). Pero es cierto que cada vez más y más aplicaciones necesitan por un motivo u otro enviar correos electrónicos.
Antes lo que los desarrolladores haciamos era simplement instalarnos un servidor SMTP en nuestra máquina (si las políticas de nuestro administrador nos los permitian), pero esta opción ha perdido validez con la llegada de Windows Vista que no incluye servidor SMTP en ninguna de sus versiones.
Una características que he descubierto por pura necesidad a la hora de escribir el testeo unitario de una aplicación es la posibilidad de configurar las clases de mensajeria del framework de .Net para que en lugar de enviar el mensaje por SMTP simplemente lo dejen un directorio.
Para ello es suficiente añadir las siguentes líneas a nuestro archivo de configuración:
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="c:\TestMessages\" />
<network host="127.0.0.1" port="25" defaultcredentials="true" />
</smtp>
</mailSettings>
</system.net>
De esta manera, la clase SmtpClient generará un mensaje de correo y lo pondra en el directorio especificado (c:\TestMessages en el ejemplo) en formato .eml.