Le preguntamos a Gemini, la inteligencia artificial de Google, cómo instalar y configurar SendMail en linux
Explicanos detalladamente cómo instalar y configurar SendMail en linux Sendmail es el Agente de Transferencia de Correo (MTA) tradicional en sistemas Unix/Linux. A diferencia de Postfix, Sendmail utiliza el lenguaje de macros m4 para procesar su configuración principal, compilando el archivo legible /etc/mail/sendmail.mc en el archivo ejecutable /etc/mail/sendmail.cf.Requisitos Previos
Hostname FQDN configurado: Sendmail fallará al arrancar o se congelará si el comando hostname -f no devuelve un FQDN válido (ej. mail.tudominio.com).
IP estática y resolución local: Tu archivo /etc/hosts debe asociar la IP pública/local al nombre FQDN.
1.1. Instalar paquetes y dependencias:
Compatibilidad del sistema y herramientas m4.
Instalamos el motor de Sendmail junto con las utilidades de procesamiento de macros m4 y el generador de mapas de base de datos.
En Ubuntu / Debian:
Bash
sudo apt update
sudo apt install sendmail sendmail-cf m4 mailutils -y
En RHEL / Rocky Linux / AlmaLinux:
Bash
sudo dnf install sendmail sendmail-cf m4 mailx -y
2.2. Preparar la identidad del servidor (/etc/hosts):
Resolución FQDN obligatoria.
Edita el archivo de hosts para garantizar que el sistema resuelva correctamente el FQDN antes de arrancar el demonio:
Bash
sudo nano /etc/hosts
Asegúrate de tener una entrada explícita vinculando tu IP al FQDN:
Plaintext
127.0.0.1 localhost
192.168.1.100 mail.tudominio.com mail
Verifica la resolución:
Bash
hostname -f
# Debe responder: mail.tudominio.com
3.3. Configurar la interfaz de escucha y enmascaramiento:
Editar sendmail.mc para permitir tráfico externo.
Por defecto, Sendmail solo escucha en la interfaz de bucle de retorno (127.0.0.1). Para que acepte conexiones de la red local o de Internet, debemos modificar /etc/mail/sendmail.mc.
Abre el archivo de plantilla:
Bash
sudo nano /etc/mail/sendmail.mc
Permitir escuchar en todas las interfaces:
Busca la línea DAEMON_OPTIONS y coméntala colocando dnl # al principio, o cambia la IP a 0.0.0.0:
Plaintext
dnl # DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
Configurar el dominio saliente (Masquerading):
Para que los correos salientes aparezcan enviados desde @tudominio.com en lugar de @mail.tudominio.com:
Plaintext
MASQUERADE_AS(`tudominio.com')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`masquerade_entire_domain')dnl
4.4. Compilar la configuración y generar el archivo binario:
Compilación m4 a sendmail.cf.
Nunca debes editar /etc/mail/sendmail.cf directamente. En su lugar, compila las macros editas en el paso anterior usando m4 o la utilidad make propia de Sendmail.
Bash
cd /etc/mail
sudo make -C /etc/mail
(Si el comando make no está disponible, puedes compilar manualmente mediante m4):
Bash
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
5.5. Configurar permisos de retransmisión (/etc/mail/access):
Prevención de Open Relay mediante la tabla access.
Para permitir que ciertos servidores web o subredes de tu red envíen correos a través de Sendmail sin que el servidor sea un "Open Relay" para spammers:
Edita la tabla de acceso:
Bash
sudo nano /etc/mail/access
Agrega las IPs o rangos autorizados:
Plaintext
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:192.168.1 RELAY
Genera la base de datos indexada (access.db) usando makemap:
Bash
sudo makemap hash /etc/mail/access < /etc/mail/access
6.6. Reiniciar Sendmail y probar el flujo SMTP:
Arranque del servicio y prueba de envío.
Aplica los cambios reiniciando los servicios y habilita su inicio automático con el sistema:
Bash
sudo systemctl restart sendmail
sudo systemctl enable sendmail
Ejecuta una prueba de envío desde la consola:
Bash
echo "Prueba de envío mediante Sendmail" | mail -s "Test Sendmail" tu_correo@gmail.com
Verificación de Logs y Diagnóstico
Para rastrear transacciones o investigar errores de entrega en Sendmail, inspecciona el registro en tiempo real:
Bash
# En Debian/Ubuntu:
sudo tail -f /var/log/mail.log
# En RHEL/CentOS/Rocky Linux:
sudo tail -f /var/log/maillog
Tabla de Comandos Utilitarios de Sendmail
¿Quieres configurar autenticación SASL y cifrado TLS/SSL en Sendmail?
Bash
# En Debian/Ubuntu:
sudo tail -f /var/log/mail.log
# En RHEL/CentOS/Rocky Linux:
sudo tail -f /var/log/maillog
Tabla de Comandos Utilitarios de Sendmail