Configurar Servidor SMTP

En la entrada de blog Best Free SMTP Servers, hablamos de las soluciones basadas en la nube para enviar correos electrónicos. Estos son bastante comunes para todos los tamaños de proyectos. Pero, ¿qué pasa si no desea utilizar los servicios de retransmisión de correo electrónico de Gmail SMTP o sus alternativas? En este artículo, le enseñaremos cómo configurar un servidor SMTP local y deshacerse de cualquier dependencia de envío de correo electrónico.

¿Realmente necesita un servidor SMTP?

El uso de un servidor SMTP saliente es el método tradicional de envío de correos electrónicos. Una solución alternativa es omitir el servidor SMTP y enviar directamente al destino. Se conoce como Envío directo, y puedes usarlo a través de programas de software de correo electrónico específicos. Sin embargo, el envío directo no es muy confiable, y aquí está la razón:

  • No se puede usar si el puerto 25 está bloqueado por su ISP.
  • No es apto para correo masivo debido a múltiples conexiones a muchos servidores diferentes.
  • No puede enviar correos electrónicos no personalizados.
  • Puede ser bloqueado por filtros de correo electrónico porque los correos electrónicos no se envían desde un servidor SMTP normal.

Guardemos el Envío directo. Lo que puede interesarle es por qué ejecutaría su propio servidor SMTP.

Pros y contras de un servidor SMTP local

Pros Contras
  • sin límite diario u horario en el número de correos salientes
  • informes instantáneos
  • privacidad y control de todo su correo saliente
  • sin IP compartida
  • ejecutar un servidor SMTP local requiere tiempo y esfuerzo
  • la tasa de rebote puede aumentar en 20-30%
  • Algunas soluciones basadas en la nube, como Mailgun y SendPulse, también ofrecen todas las ventajas anteriores. Sin embargo, todas estas funciones son de pago, y todavía tiene que confiar en un servicio de terceros. En su lugar, puede configurar un servidor SMTP en su computadora utilizando un software específico.

    Requisitos para un servidor SMTP local

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

    • Algunos ISP pueden bloquear el puerto 25. Puede resolver esto poniéndose en contacto con su proveedor de ISP y aprendiendo sobre las limitaciones que pueden imponer. Además, debe solicitar un servidor DNS correcto y permiso para la resolución de registros MX.
    • Para correos electrónicos masivos, probablemente debería optar por un dominio y una dirección IP fija asociada a él, esto aumentará su resistencia a los filtros de spam.

    Configuración rápida del servidor SMTP

    Ahora, hagamos el trabajo. Dado que va a configurar un servidor SMTP en su computadora, es crucial saber qué sistema operativo se utiliza. Es por eso que revisaremos tres formas de hacer esto para macOS, Windows y Linux.

    Nota importante: Si envías correos electrónicos de prueba a la dirección de correo electrónico real, es posible que no los encuentres en la bandeja de entrada. No olvides revisar la carpeta de spam. Los ESP como Gmail, Yahoo y otros sospechan de los nuevos agentes de transferencia de correo.

    Para macOS

    Las últimas versiones de macOS X vienen preinstaladas con Postfix, un servidor de correo electrónico predeterminado. Por lo tanto, todo lo que necesita hacer es ajustar la configuración del servidor SMTP de la siguiente manera:

    Archivo de configuración de Postfix

    • El archivo de configuración principal de Postfix es el primero en trabajar. Corre:
    sudo vim /etc/postfix/main.cf
    • Dile a Postfix qué nombre debe usar para identificarse con otros servidores de correo. Agregue las siguientes líneas:
    myhostname = john.example.commyorigin = example.com

    Si su nombre de usuario local es John, el correo aparecerá como de [email protected].

    • El host de retransmisión es la máquina que aceptará correos después de la autenticación y los retransmitirá al servidor SMTP.
    relayhost=mail.example.com:25
    • Debe habilitar SASL con un archivo de configuración adicional, donde se almacena la contraseña.
    smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
    • Esta línea significa que Postfix solo utilizará conexiones cifradas con TLS.
    smtp_tls_security_level = encrypt
    • Aquí es cómo main.cf se ve en su totalidad:
    myhostname = john.example.commyorigin = example.comrelayhost=mail.example.com:25smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswdsmtp_tls_security_level = encrypt
    • Guarde el archivo con:
    sudo postmap /etc/postfix/main.cf

    Archivo con SASL contraseña

    • Crear sasl_passwd archivo:
    sudo vim /etc/postfix/sasl_passwd
    • Agregue la siguiente línea:
    mail.example.com:25 [email protected]:
    • Guarde el archivo con:
    sudo postmap /etc/postfix/sasl_passwd
    • Y reiniciar Postfix:
    sudo postfix reload

    El servidor SMTP local está listo. Pruébelo enviando un correo electrónico de prueba:

    date | mail -s "Test email" [email protected]

    Nota: este flujo de configuración es adecuado para máquinas que no son macOS y que tienen un demonio Postfix normal.

    Para Linux

    La mayoría de las distribuciones de Linux se incluyen con las dos implementaciones SMTP más comunes: Sendmail y Postfix. Sendmail tiene un diseño bastante complejo y es menos seguro; es por eso que elegimos Postfix de nuevo.

    Instalación

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

    sudo apt install mailutils postfix

    En la ventana de Configuración de Postfix, deberá elegir la configuración de correo del sitio de Internet. Por último, deberá especificar el nombre de correo del sistema. Debe ser el mismo que el nombre que asignó al nombre de dominio que apunta a su servidor. Vamos a usar example.com.

    Configuración

    Ahora, configuremos Postfix para procesar solicitudes para enviar correos electrónicos desde localhost. Para ello, debe modificar el archivo de configuración principalmain.cf:

    sudo nano /etc/postfix/main.cf

    Desplácese hacia abajo hasta la línea inet_interfaces = all y reemplácela por inet_interfaces = loopback-only

    Además, debe modificar mydestination, que especifica la lista de dominios. Debería verse así.:

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

    Guarde el archivo y reinicie Postfix con:

    sudo systemctl restart postfix

    Al final, intenta enviar un correo electrónico de prueba:

    echo "Test email body" | mail -s "Test email subject line" receipient's_email_address

    Para Windows

    Hay varias opciones de software para configurar un servidor SMTP en Windows, incluidos MailEnable y Apache James. Pero hemos optado por el más popular, llamado hMailServer.

    Instalación

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

    • En la ventana Seleccionar componentes, asegúrese de elegir la instalación completa. Los componentes de servidor y administrativos deben verificarse.
    • En la ventana Seleccionar tipo de servidor de base de datos, compruebe el motor de base de datos integrado.
    • En la ventana de seguridad de hMailServer, cree una contraseña para el usuario predeterminado.

    una Vez instalado, ejecute hMailServer, y ahora vamos a configurarlo.

    Configuración

    • Haga clic en Conectar en la ventana de inicio e introduzca la contraseña que configuró durante la instalación.
    • Haga clic en Agregar dominio e introduzca su nombre de dominio en el campo correspondiente. Por cierto, puedes usar un nombre de dominio falso ya que el real no es necesario para enviar correos electrónicos. Pero, en este caso, asegúrese de que el dominio falso no exista realmente. Haz clic en Guardar y verás tu dominio creado en la pestaña de la izquierda.
    • Seleccione la carpeta Cuentas en la pestaña izquierda y haga clic en Agregar Add para configurar una. Todo lo que necesita hacer aquí es ingresar un nombre en el campo de dirección. Esto configurará su dirección de correo electrónico. Opcionalmente, puede especificar una contraseña. Haz clic en Guardar y dirígete a la configuración de la pestaña de la izquierda.
    • Expanda el hilo de configuración y seleccione Protocolos. Desmarque POP3 e IMAP. Para más información sobre estos protocolos, leer nuestro post en el blog IMAP vs POP3 vs SMTP. Haz clic en Guardar.
    • Ahora, seleccione Avanzado en el hilo de Configuración e ingrese localhost en el campo de dominio predeterminado en la pestaña derecha. Haz clic en Guardar. Para terminar con la configuración avanzada, seleccione Auto-ban y desmarque la casilla Habilitada. Haz clic en Guardar.
    • Al final, expanda el subproceso de Utilidades y seleccione Diagnósticos. Seleccione su dominio para ejecutar pruebas y haga clic en Inicio. No estamos interesados en todas las pruebas, solo recopilamos los detalles del servidor y el puerto de salida de prueba. Estos deben estar marcados en verde.

    Eso es todo. Ahora puede enviar su correo electrónico de prueba. Esto se puede hacer con PowerShell, es rápido y fácil. Para obtener más información sobre esto, lee nuestra publicación de blog Enviar correos electrónicos desde PowerShell. Ejecute la siguiente línea (no olvide ingresar sus datos):

    Send-MailMessage -To "<recipient's email address>" -From "<your email address>" -Subject "Your email subject" -Body "Your email body text" -Credential "<your username>" -SmtpServer "127.0.0.1" -Port 25

    En la ventana emergente, deberás introducir tu contraseña.

    ¿Es un servidor SMTP bueno para 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á correos electrónicos, deberá 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, no es problemático instalar y configurar un servidor SMTP local. Sin embargo, hay una solución mucho mejor.

    Si utiliza Mailtrap para realizar pruebas, obtendrá una herramienta avanzada basada en un servidor SMTP falso. Significa que tu aplicación enviará correos electrónicos, pero en realidad no los entregará. Su correo saliente terminará en la bandeja de entrada de demostración de Mailtrap. Por lo tanto, no tendrá que preocuparse por los destinatarios de correo electrónico reales y revisar la carpeta de spam cada vez que realice pruebas. No se requiere instalación alguna. Todo lo que necesita hacer es actualizar su configuración SMTP con credenciales de Mailtrap. Alternativamente, puede copiar y pegar un fragmento de código listo para usar. Hay diferentes integraciones disponibles para los frameworks y lenguajes de programación más comunes. Para obtener más información sobre otros beneficios y capacidades, lea la Guía de introducción de Mailtrap.

    Para terminar

    Ejecutar un servidor de correo local a veces puede ser una molestia. Se requiere una gran cantidad de conocimiento y esfuerzo para lograr una buena capacidad de entrega de correo electrónico utilizando su propio servidor SMTP. Tal vez sea una buena opción para fines de prueba, pero Mailtrap u otras herramientas de prueba de correo electrónico lo harán mejor. Entonces, ¿realmente necesita un servidor SMTP local? Eres el único que puede responder a eso. ¡Buena suerte!

    Leave a Reply

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada.