Ícono del sitio Mailtrap

Configurar Servidor SMTP – Un Tutorial Paso a Paso

Set up smtp server

En nuestro artículo sobre los mejores servidores SMTP gratuitos, discutimos soluciones basadas en la nube para enviar emails. Estas son bastante comunes para proyectos de todos los tamaños.

Pero, ¿qué pasa si no quiere usar los servicios de relé SMTP proporcionados por Gmail o sus alternativas? En este artículo, le enseñaremos cómo configurar un servidor SMTP local y eliminar cualquier dependencia para enviar emails.

¿Realmente necesita un servidor SMTP?

Usar un servidor SMTP saliente es el método tradicional para enviar emails. Un servidor SMTP es una computadora o una aplicación que envía emails usando el Protocolo Simple de Transferencia de Email (SMTP).

Una solución alternativa es omitir el servidor SMTP y enviar emails directamente al destino. Esto se conoce como Envío Directo (Direct Send) y puede usarlo a través de programas específicos de software de email.

Sin embargo, el Envío Directo no es muy confiable, y aquí le decimos el porqué:

Así que, dejemos el Envío Directo a un lado y averigüemos por qué alguien ejecutaría su propio servidor SMTP.

Pros y contras de un servidor SMTP local

ProsContras
No hay límite diario o por hora en el número de emails salientes
Reportes instantáneos
Privacidad y control de todos sus emails salientes
No hay IP compartida
Ejecutar un servidor SMTP local lleva tiempo y esfuerzo
La tasa de rebote puede aumentar en un 20-30%

Para resumir esta comparación, aquí hay un comentario que encontramos en Reddit:

Fuente: Reddit

Las soluciones de envío basadas en la nube, como Email API/SMTP de Mailtrap, también proporcionan todas las ventajas mencionadas arriba. Estas soluciones de terceros son más seguras y aún le proporcionan el control total sobre su infraestructura de email.

Sin embargo, todavía tienen el factor de dependencia. Así que, si desea eliminar la dependencia, puede, por supuesto, configurar un servidor SMTP usando software específico.

Requisitos para un servidor SMTP local

Hasta ahora, no hay requisitos específicos. Sin embargo, debe estar preparado para lo siguiente:

Configuración rápida del servidor SMTP

Ahora, pongámonos manos a la obra. Dado que va a configurar un servidor SMTP en su computadora, es crucial tener en cuenta el sistema operativo u OS. Así que, explicaremos cómo configurar un servidor SMTP local en máquinas macOS, Windows y Linux.

Nota importante: Si envía emails de prueba a una dirección de email real, es posible que no los encuentre en la bandeja de entrada. No olvide revisar su carpeta de spam. Los clientes de email como Gmail, Yahoo, Outlook y otros son sospechosos de nuevos agentes de transferencia de email (MTAs).

Asegúrese de respaldar el archivo de configuración de Postfix antes de hacer cualquier cambio.

Cómo configurar un servidor SMTP local en macOS

En el pasado, el servidor macOS era una aplicación poderosa que la gente usaba para gestionar servicios de red y, como habrá adivinado, configurar servidores de email. Utilizaba Postfix (un MTA) por defecto.

Poco a poco, Apple redujo las características del servidor macOS y, en 2022, lo descontinuó completamente. La aplicación ya no se actualizará para coincidir con las nuevas versiones de macOS.

Las versiones existentes del servidor macOS son compatibles con Monterey y versiones anteriores de macOS. Esto significa que aún puede usarlo para su configuración de servidor SMTP.

Nota: La configuración puede diferir ligeramente dependiendo de la versión del OS que esté usando. En el tutorial a continuación, configuraremos un servidor SMTP local en macOS Big Sur. Para versiones anteriores o posteriores de macOS, consulte el repositorio de GitHub.

Postfix debería estar preinstalado en su máquina. Si no es así, puede instalarlo usando un gestor de paquetes de terceros como Homebrew o MacPorts. Para Homebrew, ejecute el siguiente comando:

brew install postfix

Luego cree un nuevo archivo de configuración usando el siguiente fragmento de código:

sudo nano /etc/postfix/main.cf

Si Postfix ya está instalado, puedes acceder a él ejecutando:

sudo vim /etc/postfix/main.cf

Dígale a Postfix qué nombre debe usar para identificarse ante otros servidores de email. Agregue las siguientes líneas:

myhostname = john.ejemplo.com
myorigin = ejemplo.com

Si su nombre de usuario local es John, el email parecerá provenir de john@ejemplo.com.

Ahora es el momento de configurar el host de retransmisión. Es la máquina que aceptará los emails después de la autenticación y los retransmitirá al servidor SMTP.

relayhost = mail.ejemplo.com:25

El siguiente paso es agregar la IP de la red local, definir parámetros TLS y habilitar SASL. Este último requiere un archivo de configuración adicional en el que se almacena la contraseña.

Cree el archivo sasl_passwd:

sudo vim /etc/postfix/sasl_passwd

Agregue la siguiente línea:

mail.ejemplo.com:25 john@ejemplo.com:<su contraseña>

Guarde el archivo con:

sudo postmap /etc/postfix/sasl_passwd

Ahora vuelva a su archivo main.cf.

El código completo se verá así:

myhostname = mailserver.my.home
myorigin = $myhostname

mydestination = $myhostname, mailserver.my.home, localhost.localdomain, localhost
relayhost = mail.ejemplo.com:25
mynetworks = 127.0.0.0/8, [::1]/128

smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated permit
recipient_delimiter = +
tls_random_source = dev:/dev/urandom
smtpd_tls_ciphers = medium

inet_interfaces = all
smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/certs/mailserver.my.home.crt
smtpd_tls_key_file=/etc/ssl/private/mailserver.my.home.key
smtpd_tls_security_level=may

smtp_tls_CApath=/opt/homebrew/etc/ssl/
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated permit_inet_interfaces defer_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

sender_canonical_maps = hash:/etc/postfix/sender_canonical

virtual_maps = hash:/etc/postfix/virtual

home_mailbox = Maildir/

sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map

Ahora tenemos que autorizar el arranque de Postfix y reiniciarlo. Para eso, necesitamos copiar el plist maestro de Postfix fuera de la carpeta del sistema.

sudo cp /System/Library/LaunchDaemons/com.apple.postfix.master.plist /Library/LaunchDaemons/org.postfix.custom.plist 

Luego necesitamos ejecutar:

sudo vi /Library/LaunchDaemons/org.postfix.custom.plist

El valor Com.apple.postfix.master debe ser sustituido por org.postfix.custom.

Ahora deberíamos eliminar estas líneas para evitar la salida después de 60 segundos

<string>-e</string>
<string>60</string>

y agregar estas antes de </dict>

<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>

Es hora de relanzar el daemon

sudo launchctl unload /Library/LaunchDaemons/org.postfix.custom.plist
sudo launchctl load /Library/LaunchDaemons/org.postfix.custom.plist

y verificar si ha iniciado.

sudo launchctl list | grep org.postfix

Luego puede verificar el puerto de escucha 25

sudo lsof -i -P | grep LISTEN 

y verificar el registro.

log stream --predicate  '(process == "smtpd") || (process == "smtp")' --info

Cómo configurar un servidor de email SMTP en Linux

La mayoría de las distribuciones de Linux se envían con las dos implementaciones de SMTP más comunes: Sendmail y Postfix. Sendmail tiene un diseño bastante complejo y una arquitectura menos segura; por eso elegimos Postfix nuevamente.

Instalación

Si no tiene Postfix en su máquina, necesitará instalarlo. Además, necesitará el paquete de email Mailutils, que incluye los programas necesarios para que Postfix funcione:

sudo apt install mailutils postfix

En la ventana de configuración de Postfix, necesitará elegir la configuración de email de Internet Site. Finalmente, necesitará especificar el nombre del sistema de email. Debe ser el mismo nombre que asignó al nombre de dominio que apunta a su servidor. Usemos ejemplo.com.

Configuración

Ahora, configuremos Postfix para procesar solicitudes de envío de emails desde localhost. Para esto, necesita modificar el archivo de configuración principal main.cf:

sudo nano /etc/postfix/main.cf

Desplácese hacia abajo hasta la línea inet_interfaces = all para reemplazarla con inet_interfaces = loopback-only. Esto le dirá a Postfix que acepte los emails entrantes solo en localhost.

Además, necesita modificar mydestination, que especifica la lista de dominios. Debe verse así:

mydestination = $myhostname, localhost.$ejemplo.com, $ejemplo.com

Guarde el archivo y reinicie Postfix.

sudo systemctl restart postfix

Al final, intente enviar un email de prueba.

echo "Cuerpo del email de prueba" | mail -s "Línea de asunto del email de prueba" receipient's_email_address

Cómo configurar un servidor de retransmisión SMTP local en Windows

Para configurar un servidor SMTP en Windows, tiene dos opciones principales:

Instalación usando hMailServer

Descargue la última versión de hMailServer e instálela. Al principio de la instalación, debe prestar atención a lo siguiente:

Una vez instalado, es hora de ejecutar y configurar hMailServer.

Eso es todo. Ahora puede enviar su email de prueba. Esto se puede hacer con PowerShell, es rápido y fácil. Para más información sobre esto, lea nuestro artículo sobre enviar emails desde PowerShell. Ejecute la siguiente línea (no olvide ingresar sus datos):

Send-MailMessage -To "<dirección email del destinatario>" -From "<su dirección email>"  -Subject "Asunto de su email" -Body "Texto del cuerpo de su email" -Credential "<su nombre de usuario>" -SmtpServer "127.0.0.1" -Port 25

En la ventana emergente, necesitará ingresar su contraseña y luego estará listo para continuar.

Instalación usando IIS

La configuración del relé SMTP con IIS requiere cualquier versión de Windows Server. Desglosaremos el proceso de instalación general. Para obtener más detalles sobre su versión específica, consulte la documentación de Microsoft.

Para instalar el servidor SMTP, necesitará completar los siguientes pasos:

Después de la instalación, es necesario configurar el Servidor Virtual SMTP. Para eso, necesitamos el Administrador de IIS 6.0.

Una vez que complete estos pasos, debe probar la configuración con Telnet. Si puede enviar emails exitosamente, entonces esto significa que tiene un servidor de email SMTP funcionando.

¿Es un servidor SMTP bueno para las pruebas?

En la mayoría de los casos, las personas configuran servidores SMTP locales con fines de prueba. Si está desarrollando una aplicación que enviará emails, necesitará probar esta función, y un servidor SMTP real que se ejecute en su máquina local podría parecer una buena opción. Pero, ¿lo es?

Por un lado, instalar y configurar un servidor SMTP local no es problemático. Sin embargo, hay una solución mucho mejor.

Mailtrap es una Plataforma de Email Delivery que cubre todas sus necesidades relacionadas con el email. Le permite probar, enviar y controlar su infraestructura de email a través de una sola plataforma.

En lugar de configuraciones largas del servidor SMTP local, puede usar Email Testing de Mailtrap: un Sandbox de Email con un entorno seguro para probar, inspeccionar y depurar emails. Todo esto se puede hacer en staging, lo que significa que su aplicación puede enviar un email, pero no será entregado al destinatario real.

Pruebe Mailtrap Ahora

En su lugar, el email de prueba irá a la bandeja de entrada del Sandbox. Así, no hay riesgos de spamear a los usuarios.

Desde la bandeja de entrada, es posible validar el HTML/CSS de su email y ver rápidamente los resultados del análisis de spam que son verificados por el filtro Apache SpamAssassin.

El proceso de instalación es sencillo. Todo lo que tiene que hacer es actualizar su configuración SMTP con las credenciales relevantes:

Alternativamente, puede copiar y pegar un fragmento de código listo para usar que aparece una vez que se selecciona el idioma relevante del menú desplegable.

Cuando su aplicación entre en producción, puede usar Email API/SMTP de Mailtrap para llegar a las bandejas de entrada de los destinatarios. Es una infraestructura de email que ofrece altas tasas de entregabilidad por diseño.

A diferencia del servidor SMTP local, proporcionamos registros DNS para los protocolos de autenticación SPF, DKIM y DMARC. También realizamos verificaciones de seguridad para máxima protección y soportamos conexiones cifradas.

Una vez que los emails son enviados, Email API/SMTP le permitirá acceder en profundidad a sus Analíticas Accionables (Actionable In-Depth Analytics).

Para finalizar

Ejecutar un servidor de email local puede ser a veces una molestia. Se requiere una gran cantidad de conocimientos y esfuerzo para lograr una buena entregabilidad de emails usando su propio servidor SMTP. Es por eso que recomendamos elegir un servicio de API y SMTP como Email API/SMTP de Mailtrap.

Un servidor SMTP local es quizás bueno para fines de prueba, pero Email Testing de Mailtrap u otras herramientas de prueba de email lo harán mejor.

Entonces, ¿realmente necesita un servidor SMTP local? Solo usted puede responder a eso. ¡Buena suerte!

Salir de la versión móvil