Enviar correo electrónico a una carpeta del sistema en C#

Hay ocasiones en las que necesitamos probar partes de nuestro código que incluyen la funcionalidad de envío de correos electrónicos y no siempre se puede contar en los ambientes de desarrollo o pruebas con un servidor de correo SMTP. Una alternativa para probar nuestras funcionalidades en ese contexto, es almacenando los mensajes de correo en una carpeta específica del servidor.

Para hacer esto, es tan sencillo como agregar la siguiente sección en el archivo de configuración de la aplicación:

<system.net>
    <mailSettings>
        <smtp deliveryMethod="SpecifiedPickupDirectory">
            <specifiedPickupDirectory pickupDirectoryLocation="C:\TempMail" />
        </smtp>
    </mailSettings>
  </system.net>

Y podemos hacer la prueba agregando un código básico para generar un correo electrónico:

            using (SmtpClient client = new SmtpClient())
            {
                string from = "me@localhost.com";
                string to = "you@remote.com";
                string subject = "Sending to local directory";
                string body = "It works!";

                MailMessage message = new MailMessage(from, to, subject, body);

                client.Send(message);
            }

Luego de esto, podemos ir a buscar el mensaje en la carpeta específicada, y encontraremos el archivo del correo electrónico generado:

savemailtofolder01

savemailtofolder02

Para tener en cuenta:

  • La carpeta especificada en el web.config debe existir, ya que no es creada automáticamente.
  • Desde ASP.NET, el servidor IIS debe estar configurado para tener permisos de escritura en la carpeta especificada.

Espero que sea de utilidad!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: