Para quienes administran servidores o trabajan en tareas de automatización, saber cómo enviar correos electrónicos desde la terminal de Linux es esencial. Esto permite un control total sobre las funciones de correo y elimina la necesidad de programas complejos. Es especialmente útil en escenarios donde la rapidez y la simplicidad son fundamentales.
Herramientas comunes como sendmail y mailx se utilizan frecuentemente para enviar mensajes, verificar configuraciones SMTP, automatizar alertas e integrarse con scripts. Son herramientas simples pero muy efectivas, ideales para tareas como informar al equipo sobre actualizaciones del servidor, generar informes automatizados o probar configuraciones de correo.
Esta guía está diseñada para usuarios que desean gestionar su correo directamente desde la terminal. Incluye la instalación de las herramientas esenciales y también tareas avanzadas, como el envío de adjuntos y la configuración de herramientas de correo.
Las dos herramientas más utilizadas —sendmail y mailx— son soluciones confiables para enviar correo en Linux. Sus principales ventajas son:
Los clientes de correo tradicionales pueden ser lentos y consumir muchos recursos. Estas herramientas permiten enviar correos de forma rápida y ligera directamente desde la terminal.
Se integran fácilmente con scripts shell, procesos cron y herramientas de monitoreo. Esto permite automatizar notificaciones y alertas para tareas repetitivas.
Configurar y depurar SMTP se vuelve más sencillo. Estos comandos permiten inspeccionar mensajes, registros y errores con mayor claridad.
Desde enviar alertas hasta generar informes automáticos, sendmail y mailx ofrecen una amplia versatilidad.
Antes de utilizar estas herramientas de correo en Linux, asegúrate de tener:
Acceso a terminal: En algunos casos pueden requerirse permisos de root.
Un servidor SMTP: Necesario para realizar pruebas de envío.
Herramientas instaladas: Comprueba que sendmail y mailx estén instalados correctamente.
Los servidores SMTP son esenciales para enviar correos. Se dividen en dos tipos:
Servidores SMTP externos
Servidores SMTP locales
Son servidores de correo proporcionados por un tercero. Permiten enviar correos a destinatarios fuera de la red local. Ofrecen:
Entrega global
Autenticación
Cifrado
Prevención de spam
Dirección: smtp.gmail.com
Puerto: 587 (TLS) o 465 (SSL)
Dirección: smtp.office365.com
Puerto: 587
Estos servidores requieren autenticación adecuada (usuario, contraseña o contraseñas específicas de aplicación) y cifrado (TLS/SSL).
Nota: ya proporcionamos una guía para configurar servidores SMTP externos. El comando para enviar correos mediante Postfix es el mismo. Solo debes configurar los parámetros SMTP y sustituir la dirección por tu cuenta de Gmail u otro proveedor.
Funcionan exclusivamente dentro de una red privada. Son ideales para:
Enviar correos entre usuarios internos (por ejemplo: tom@office.local → jerry@office.local)
Pruebas y desarrollo locales
Comunicación interna
No requieren acceso a Internet
sudo apt install postfix
sudo nano /etc/postfix/main.cf
Ajusta o confirma estos parámetros:
myhostname = mail.office.local
mydomain = office.local
myorigin = $mydomain
inet_interfaces = loopback-only
local_recipient_maps = proxy:unix:passwd.byname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Guarda los cambios y reinicia:
sudo systemctl restart postfix
sudo adduser linux
sudo adduser hostman
Esto permite direcciones como linux@office.local.
sendmail es un conocido agente de transferencia de correo (MTA) en Linux. Funciona perfectamente con servidores SMTP y permite enviar correos desde sistemas locales o scripts.
sudo apt install sendmail
sudo yum install sendmail
sudo systemctl start sendmail
sudo systemctl enable sendmail
echo "Testing sendmail setup" | sendmail -v your-email@example.com
Verificar el correo recibido:
mail
Si mail no está instalado:
sudo apt install mailutils
O utilizar:
cat /var/mail/user
sudo nano /etc/mail/sendmail.mc
Ejemplo de ajuste del nombre de dominio:
define(`confDOMAIN_NAME', `your_domain.com')dnl
Regenerar el archivo de configuración:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Si aparece un error de permisos:
sudo sh -c "m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf"
Reiniciar el servicio:
sudo systemctl restart sendmail
nano email.txt
Contenido:
Subject: Test Email from Hostman
This is a test email sent using sendmail on Linux.
sendmail recipient@example.com < email.txt
mail
sendmail no admite adjuntos de forma nativa. Debes usar uuencode:
sudo apt install sharutils
Enviar archivo adjunto:
( echo "Subject: Email with attachment"; uuencode file.txt file.txt ) | sendmail recipient@example.com
Verificación:
mail
mailx es una utilidad de terminal simple y eficaz para gestionar correo electrónico. Forma parte del paquete mailutils.
sudo apt install mailutils
sudo yum install mailx
echo "This is the body of the email" | mailx -s "Test Email from Mailx" recipient@example.com
echo "Please find the attached document" | mailx -s "Email with Attachment" -A email.txt recipient@example.com
Enviar correos desde la línea de comandos en Linux es una forma eficaz de automatizar tareas de comunicación, solucionar problemas de servidores o probar configuraciones. Con herramientas como sendmail y mailx, puedes gestionar mensajes simples o configuraciones complejas con adjuntos. Esta guía ofrece instrucciones claras para comenzar sin dificultad y mejorar tu flujo de trabajo.