Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Cómo instalar y configurar SendMail en linux

 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

ComandoFunción
mailq (o sendmail -bp)Muestra la lista de correos atascados en la cola de salida.
sendmail -q -vFuerza el procesamiento inmediato y de forma detallada (verbose) de la cola.
sendmail -bv usuario@dominio.comVerifica el enrutamiento de una dirección sin enviar un correo real.
makemap hash archivo < archivoCompila archivos de texto plano en bases de datos .db legibles por Sendmail.

¿Quieres configurar autenticación SASL y cifrado TLS/SSL en Sendmail?

Ads by CJ - Linux Foundation

Share This