> Manuales > Entorno de trabajo del desarrollador web

Soluciones útiles cuando quieres probar el envío de email desde tus desarrollos en local, pero no tienes un servidor SMTP configurado en tu ordenador personal.

Seguro que este artículo sirve para cientos o miles de desarrolladores que han tenido o tendrán esta necesidad: estás programando una funcionalidad de envío de e-mail y tienes que configurar un servidor SMTP para saber si tus correos están siendo enviados correctamente. Este supuesto afecta a todos los desarrolladores en cualquier plataforma, ya sea PHP, ASP.NET, ASP, Python, NodeJS...

Si estás probando tus páginas en un alojamiento que tengas contratado, quizás ya tengas configurado el servidor SMTP en ese servidor, por lo que no tendrías problemas. Sin embargo, muchas veces cuando desarrollamos en local, tenemos un PC donde no hay instalado ningún servidor SMTP, pues no tenemos necesidad de ellos, ya que para enviar correo se suele usar un SMTP de la empresa que nos presta el servicio de correo electrónico.

En DesarrolloWeb.com hemos escrito artículos para resolver estas necesidades de varias maneras y ahora os ofrecemos otra solución que es muy práctica, por lo sencilla que es y que nos puede servir perfectamente en la mayoría de los casos. Se trata de tener lo que se llama un "fake SMTP server" o lo que es lo mismo, un servidor de SMTP falso. También encontrarás este tipo de software con el nombre "dummy SMTP".

Básicamente consiste en un programa que se ejecuta en local, que tiene abiertos los puertos típicos de SMTP para conexiones en local y que responde como un servidor SMTP de verdad. Sin embargo, es falso porque no tiene las funcionalidades de envío del correo. Es decir, los correos realmente no se envían, se quedan en el registro de "procesos de envío" del servidor fake smtp para que podamos revisar los mensajes salientes y podamos analizar su forma, contenido, cabeceras, etc. De este modo, aunque los mensajes no lleguen a sus destinatarios, podemos estar seguros de que la parte de la programación está funcionando correctamente.

Nota: Otras de las soluciones que hemos aportado en el pasado para poder configurar un SMTP en local son las siguientes: En cambio, la solución que vamos a aportar ahora sería válida para todos los sistemas operativos y cualquier lenguaje de programación del lado del servidor.

¿Por qué un "Fake SMTP" o "Dummy SMTP"?

Bueno, la clave es la sencillez de la solución y la compatibilidad con cualquier sistema operativo y cualquier lenguaje. También la portabilidad y la falta de configuración que te proporcionan la mayoría de los SMTP server falsos. Pero se me ocurren otros motivos.

1) Porque realmente no necesitas instalar un servidor SMTP para nada en tu máquina local. Es una complicación que podemos dejar para los que les gusta cacharrear o a los administradores de sistemas. Normalmente en tu programa de correo electrónico acabas usando el SMTP de la empresa que te ofrece el servicio de correo y generalmente éste está protegido para que no se pueda usar indiscriminadamente con otros sistemas.

2) Porque un servidor falso te ahorra tener que configurar muchas de las características del envío de email. Los email no saldrán "fisicamente" de tu ordenador, pero la interfaz del servidor falso de SMTP te permitirá ver qué emails se han configurado y su forma.

3) Porque te ahorrarás dudas sobre si tu programación para el envío de correo está funcionando correctamente. Los servidores de email muchas veces rechazan los correos enviados desde servidores de SMTP "no autorizados". Puede que tu programación esté bien hecha, pero el motivo de no recibir el correo donde deberías es que se quede bloqueado en el destinatario por varios motivos. Porque el servidor SMTP que tienes en local no está configurado correctamente, porque el dominio del remitente no se pueda enviar desde la IP que tiene tu ordenador local. Y te aseguro que los servidores anti-­spam comprueban muchas cosas...

Posibles softwares para tener tu servidor SMTP falso

Ahora que ya he explicado los motivos por los que tener nuestro fake SMTP me parece una solución óptima, voy a ofreceros algunas referencias a programas que podéis probar. Usarlos es bastante sencillo, pues no tenéis que configurar nada en lo que respecta al programa.

Nota: Si acaso, tendréis que configurar las opciones de vuestro lenguaje de programación del lado del servidor, como PHP el php.ini. Generalmente tendréis que colocar "localhost" como servidor SMTP en la configuración de tu lenguaje. El puerto en el que trabajan los SMTP falsos es el mismo que los SMTP reales, 25, por lo que aquí generalmente será dejar la opción por defecto.

smtp4dev:
Es un programa para Windows. Lo descargas, lo descomprimes y lo sitúas en cualquier lugar. Realmente no se tiene que instalar, es un sencillo ejecutable .exe que, una vez puesto en marcha, se queda como programa residente.

Fake SMTP:
Este otro programa está escrito en Java, por lo que es compatible con cualquier sistema operativo, siempre que tengas instalada la máquina virtual de Java. Para ponerlo en marcha, si tu sistema lo permite, simplemente tendrás que ponerlo en marcha como un ejecutable, con doble clic en el fakeSMTP.jar. Si no, ejecutando el comando:

java -jar fakeSMTP.jar

Para otras indicaciones y configuraciones, consultar la página del programa.

DevNull SMTP:
También desarrollado en Java, puede darnos una alternativa en caso de necesidad.
Descargamos el .jar y luego lo ejecutamos, ya sea con un doble clic, como si fuera un ejecutable, o con el comando:

java -jar DevNullSmtp.jar

Otros servidores SMTP falsos desarrollados en Java:
Entiendo que en Java debe ser muy sencillo programar un servidor SMTP falso, porque en la web hay muchos otros sistemas de SMTP basados en este lenguaje. Dumbster, o subethasmtp son ejemplos de ello. Echarles un vistazo si os hace falta.

SMTPDummy:
Otra alternativa, donde aportan como ventaja su portabilidad: lo puedes llevar un en una llave USB. No se molestan en su página en explicar para qué sistema operativo está realizado. Es un .exe, por lo que entendemos que es para Windows.

Mailtrap:
Solución que se ofrece como "web service", que no instala nada en local, sino que tienes que configurar tu lenguaje de programación o framework para que se use como si fuese un servidor SMTP externo (por eso difiere de otros productos comentados en este artículo, que son programas que instalas en local, no obstante, puede ser una buena opción para analizar). Según dicen en su web en el momento de escribir este artículo es gratuito, pero en el futuro piensan ofrecerlo bajo pago de alguna tarifa todavía sin concretar. La ventaja es que puedes tener en "la nube" los correos enviados por los ordenadores locales de todo el equipo de desarrollo, para revisarlos y hacer lo que necesites con ellos. También es interesante porque no tienes que instalar ningún programa en local.

Clickity:
Es una solución muy parecida a Mailtrap, ya que es un servicio web que puedes usar para testar tus mensajes. Tiene una serie de ventajas y posibilidades adicionales, pero es de pago.

De momento yo creo que tenemos suficientes opciones para escoger la que más nos guste o la que mejor nos venga. Personalmente solo he probado smtp4dev, para Windows y la experiencia ha sido completamente satisfactoria. Ya me diréis cuál es vuestro preferido.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online Escu...

Manual