9 ejemplos de comandos mail/mailx para enviar correos desde la línea de comandos en Linux

enviar correos desde la línea de comandos

el comando mail es esencial y debe estar disponible en cualquier servidor linux para que varios servicios y otras aplicaciones web puedan generar y transmitir correos electrónicos.

en un post anterior sobre el comando mail vimos cómo el comando mail se puede utilizar para enviar correos electrónicos desde la línea de comandos en su servidor linux.,

en este tutorial utilizaremos una versión mejorada del comando mail. Se llama mailx (o simplemente mail cuando está instalado), y puede hacer muchas más cosas de las que puede hacer el antiguo comando mail del paquete gnu mailutils.

cómo funciona

el comando mail / mailx necesita un servidor smtp local (MTA) en ejecución para entregar los correos electrónicos. La ruta tomada por el correo electrónico es algo así:

mail -> sendmail -> local MTA -> recipient MTA 

el MTA del destinatario sería el servidor smtp de gmail si su destinatario es alguien en gmail.com por ejemplo., Para el MTA local, necesita instalar un servidor smtp como Postfix. Una instalación básica de Postfix con una configuración mínima funcionaría en la mayoría de los casos.

instale el comando mailx

en sistemas basados en Ubuntu / Debian el comando mailx está disponible desde 2 paquetes diferentes –

1. heirloom-mailx
2. BSD-mailx

usaremos el paquete heirloom-mailx porque tiene más características y opciones.
en sistemas basados en CentOS / Fedora, solo hay un paquete llamado «mailx» que es el paquete heirloom.,

para averiguar qué paquete mailx está instalado en su sistema, compruebe la salida «man mailx» y desplácese hacia abajo hasta el final y debería ver alguna información útil.

# ubuntu/debian$ sudo apt-get install heirloom-mailx# fedora/centos$ sudo yum install mailx

Usando el comando mailx

Una vez instalado, el comando mailx se puede referenciar directamente con el nombre mail, por lo que solo debe escribirlo en la línea de comandos.

1. Simple mail

ejecute el siguiente comando, y luego mailx esperará a que ingrese el mensaje del correo electrónico. Puede pulsar enter para nuevas líneas. Cuando termine de escribir el mensaje, presione Ctrl + D y mailx mostrará EOT.,

después de que mailx entrega automáticamente el correo electrónico al destino.

$ mail -s "This is the subject" Hi someoneHow are youI am fineByeEOT

2. Tomar mensaje de un archivo

el cuerpo del mensaje del correo electrónico también se puede tomar de un archivo.

$ mail -s "This is Subject" < /path/to/file

El mensaje también puede ser canalizada mediante el comando echo –

$ echo "This is message body" | mail -s "This is Subject" 

3. Múltiples destinatarios

para enviar el correo a múltiples destinatarios, especifique todos los correos electrónicos separados por una coma

 echo echo "This is message body" /mail-S "This is Subject", 

4., CC y BCC

las opciones»- c «y» – b » se pueden usar para agregar direcciones CC y BCC respectivamente.

 echo echo "This is message body | / mail - S" This is Subject " - c 

5. Especificar nombre y dirección desde

para especificar un nombre y dirección «desde», utilice la opción «-r». El nombre debe ir seguido de la dirección envuelta en»».

 echo echo "This is message body | / mail-s" This is Subject "- R "Harry<> " 

6., Especificar dirección «Reply-To»

la dirección de respuesta se establece con la variable de opción interna » replyto «utilizando la opción»- S».

7. Adjuntos

los adjuntos se pueden agregar con la opción «- a».

 echo echo "This is message body | / mail - S" This is Subject "- R "Harry<> " - a /path/to/file 

8. Usar servidor SMTP externo

Esta es una característica exclusiva, que solo se obtiene con heirloom mailx y no BSD mailx, o el comando mail de gnu mailutils o el comando mutt.,

el comando mailx puede usar un servidor SMTP externo para retransmitir el mensaje. La sintaxis es un poco larga pero tiene sentido.

Aquí hay un desglose

Puede utilizar los servidores SMTP de gmail y enviar correos electrónicos a través de su cuenta de gmail. ¡Eso es genial!
para gmail específicamente tendría que habilitar la configuración de aplicaciones menos seguras antes de poder enviar correo como ese.

9. Verbose-watch SMTP communication

cuando se utilizan servidores SMTP externos, puede optar por ver toda la comunicación smtp que se realiza en segundo plano., Esto es útil especialmente al probar o depurar servidores smtp.

solución de problemas

en caso de que los correos no se entreguen correctamente, debe verificar algunas cosas. Lo primero que debe comprobar es que un servidor smtp (mta) se esté ejecutando localmente. El comando netstat puede decir que

si un servidor stmp como Postfix se está ejecutando y aún no se están enviando correos, intente reconfigurar Postfix, por ejemplo. En sistemas Ubuntu / Debian, esto se puede hacer con el comando dpkg-reconfigure

$ sudo dpkg-reconfigure postfix

luego vuelva a intentar, el comando mail y debería funcionar., Si todavía no lo hace, intente ponerse en contacto con su proveedor de servidor.

no hay Correos de sistemas locales

si intenta enviar correos desde su computadora local a una dirección de gmail, es muy probable que su correo sea rechazado, así que no intente hacer eso.

esto se debe a que las computadoras comunes conectadas a la dirección de internet tienen una dirección ip que no está asociada con ningún dominio válido como tal, y gmail verifica estrictamente dichas credenciales antes de aprobar cualquier correo para pasar.,

notas y recursos

Además de mailx, hay otras herramientas como Swaks y smtp-cli que se pueden usar para enviar correos desde la línea de comandos y admiten varias características como especificar servidores smtp y agregar archivos adjuntos, etc.

sin embargo, el comando mailx está disponible en los repositorios predeterminados de las distribuciones más comunes, por lo que se puede instalar fácilmente. Además, mantiene una sintaxis muy similar a la del comando mail, lo que lo convierte en un reemplazo para el comando mail anterior.,

el comando mailx es incluso capaz de leer correos de servidores IMAP remotos, pero eso es algo que mantuvimos fuera de este post y hablaríamos más tarde. Para obtener más información, consulte la página man para el comando mailx con «man mailx».

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *