GNU/Linux >> Tutoriales Linux >  >> Linux

Envíe un correo electrónico desde la terminal o secuencia de comandos de Linux usando el comando de correo

Hay otros clientes de línea de comandos basados ​​en terminales que también se pueden usar para enviar correos electrónicos como sendmail, mutt, SSMTP, telnet, pero en esta guía nos centraremos en el mail comando.

El comando de correo invoca el binario estándar de sendmail (/usr/sbin/sendmail) que a su vez se conecta al MTA local para enviar el correo a su destino. El MTA local es un servidor smtp que se ejecuta localmente y acepta correos electrónicos en el puerto 25.

Esto significa que un servidor smtp como Postfix debería estar ejecutándose en la máquina donde pretende usar el comando de correo. Si no se está ejecutando ninguno, aparece el mensaje de error "send-mail:Cannot open mail:25".

Instalación

Instalar con este comando:

Para Ubuntu

sudo apt-get install mailutils 

Para centos 7

sudo yum install -y mailx

Para centos 8/Alma Linux/Rhel

sudo dnf install -y mailx

Pruebe que el comando se instaló correctamente con este comando:

mail

El comando anterior verifica si hay un correo electrónico para el usuario actual. Debería ver una salida como esta:

➜ mail
No mail for centos

Uso

Enviar un correo electrónico sencillo

Use este comando para enviar un correo electrónico a [email protected] . El -s El argumento de la línea de comando es para especificar el asunto.

mail -s "Test mail" [email protected]

El comando anterior se bloqueará al presionar enter esperando que escriba su mensaje. Cuando termines usa Ctrl-D para notificar al cliente de correo que ha terminado y que el correo electrónico está listo para enviarse.

❯ mail -s "Test mail" [email protected]
Hey John,

Please remember to send me the Linux Book.

Regards,
Me.
EOT

El EOT se ingresó cuando presioné Ctrl-D . Una vez que haga eso, el comando de correo enviaría el mensaje para su entrega y listo.

Enviar mensaje con contenido de un archivo

Use este comando para enviar un mensaje desde el archivo /path/to/file.txt .

mail -s "Test mail" [email protected] < /path/to/file.txt

También puede usar este delineador en el que repite el contenido para enviarlo y luego canalizarlo al comando de correo.

echo "Hello world" | mail -s "Test mail" [email protected]

Enviar un correo electrónico a varios destinatarios

Para enviar un correo electrónico a varios destinatarios, puede utilizar una lista de correos electrónicos separados por comas como en este ejemplo:

echo "Hello world" | mail -s "Test mail" [email protected],[email protected]

Agregar destinatarios CC y BCC

También se pueden adjuntar direcciones en copia oculta (BCC) y en copia carbón (CC). Utilice -c <email> para CC y -b <email> para CCO.

Este ejemplo especifica CC y BCC:

echo "Hello world" | mail -s "Test mail" -c [email protected] -b [email protected]

Especifique el nombre y la dirección del remitente

Puede usar la opción -r para especificar el nombre y la dirección del remitente como se ve a continuación:

echo "Hello world" | mail -s "Test mail" –r "Kip<[email protected]>" [email protected]

Alternativamente, puede usar -a para agregar un encabezado adicional para adjuntar con el mensaje. Aquí hay un ejemplo de cómo proporcionar FROM como parte de eso.

echo "Hello world" | mail -s "Test mail" [email protected] -aFrom:[email protected]

Para especificar el nombre from, use la siguiente sintaxis:

echo "Hello world" | mail -s "Test mail" [email protected] --aFrom:Kip\<[email protected]\>

Tenga en cuenta que tenemos que escapar de las flechas menor y mayor, ya que tienen un significado especial para el indicador de shell. Cuando está emitiendo el comando desde dentro de algún script, lo omitiría.

Especifique la dirección "Responder a"

Utilice el replyto para especificar la respuesta a la dirección como en este ejemplo:

echo "Hello world" | mail -s "Test mail" [email protected] [email protected]

Correo electrónico con archivo adjunto

Enviar un correo electrónico desde [email protected] a [email protected] con un archivo adjunto.

mail -s "The File you requested" -a ~/Documents/file.txt -r [email protected] [email protected] <<EOF
Hi jane,

Please find the file requested attached.

Kind Regards,
John.
EOF

Correo electrónico a un usuario del sistema local

Para enviar un correo electrónico a un usuario del sistema local, solo especifique el nombre de usuario en lugar del destinatario. Puede agregar el nombre de host pero no es necesario usando @hostname .

mail -s "Test Subject" username 

Habilitación detallada

Si necesita verificar lo que sucede mientras se procesa el correo electrónico, habilite la salida detallada con el arg -v . Esto es bueno para la solución de problemas, como cuando desea verificar los comandos SMTP que utiliza el comando de correo. Aquí hay un ejemplo:

mail -v -s "Hello theere" [email protected] <<< 'This is the message' 

Linux
  1. ¿Cómo enviar correo a través de un servidor SMTP externo usando el comando mailx en Linux?

  2. ¿Cómo enviar un correo electrónico Html usando el comando 'mail' de Linux?

  3. Enviar correo desde la línea de comandos con un servidor smtp externo en Linux

  4. 9 ejemplos de comandos mail/mailx para enviar correos electrónicos desde la línea de comandos en Linux

  5. enviar correo desde la terminal de linux en una línea

4 comandos para apagar Linux desde la terminal

Tutorial sobre el uso del último comando en la terminal de Linux

Enviar correo electrónico en Linux desde la línea de comandos

Usando cut en Linux Terminal

Mutt, Mail y Telnet:envíe correos electrónicos desde la línea de comando o terminal de Linux

¿Cómo insertar una nueva línea en el correo electrónico usando el comando de correo de Linux?