SMTP server falso, alternativa para probar el envío de email

  • Por
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. subethasmtp es ejemplo de ello. Echarle 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.

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.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Luis

09/12/2013
Super interesante
Este artículo es de lo más interesante que he visto en mucho tiempo....

Armando

09/12/2013
Realmente bueno
Hola, creo que es una buena ayuda para los que estamos empezando y no sabemos muy bien como comprobar si estamos haciendo bien el tema del envio de correos.

María Paulina Ramírez

09/12/2013
Excelente alternativa.
Esta es una excelente alternativa. Gracias por el artículo, sé que me servirá de mucho de aquí en adelante.

Yosvany

09/12/2013
Interesante artículo
En verdad hacia mucho tiempo que buscaba algo así y ahora finalmente lo tengo, la verdad lo tengo bien complicado para trabajar desde Cuba. Ya veremos si puedo descargar este software.

Fermin

10/12/2013
Muy necesario
realmente necesario a la hora de desarrollar aplicaciones con envió de email. excelente post

Ariel

17/12/2013
Excelente
Muy bueno y very usefull, el artículo.

Javier Salas

25/8/2014
Agradecimiento
Saludos. Encontré este artículo debido a que intenté enviar un correo desde mi página, que no he publicado aún, y me daba error. Al aceptar la sugerencia de descargar smtp4dev pude resolver esta situación sin complicación alguna. Muy buen artículo. Gracias

Aitor Silva

05/3/2015
Esos servidores SMTP falsos me han salvado la vida
Horas y días tratando de configurar un servidor smtp en local para probar el correo y ahora veo que había soluciones mucho más simples cuando trabajamos en nuestros desarrollos. Es una fantástica ayuda. Muchas gracias

Paola Medina

30/10/2015
Configuración del smtp
Hola si estoy utilizando smtp4dev como debe de ir la configuración del smtp:

; SMTP = ???
; smtp_port = 25

Gracias

jorge

30/12/2015
Excelente
Mil gracias, un excelente aporte.

Correos

10/2/2016
Bieeen
Excelente aporte!

Ariel

22/9/2016
smtp4dev
Excelente smtp4dev. Me ha servido para simular una plataforma de ventas que corre en windows desktop (catálogos, compra online, administración de cuenta... etc). En este caso esta plataforma se va a exhibir en una feria nacional, donde la conectividad no es garantía. En este sentido, se simulan todos los servicios online que ofrece esta plataforma.

Para hacer funcionar el smtp4dev con la plataforma tuve que agregar los dominios (con subdominio) en el archivo host del windows (127.0.0.1 mail.midominio.com).

Saludos desde Argentina.

Marisol

18/9/2017
Excelente!!!
Me encanto el articulo... aprendí mucho y fue de gran ayuda... Muchas gracias...