Articles

Linux mail command examples-send mails from command line

Posted by admin

Send mails from command-line

ser capaz de enviar correos electrónicos desde la línea de comandos desde un servidor es muy útil cuando necesita generar correos electrónicos programáticamente desde scripts de shell o aplicaciones web, por ejemplo.

este tutorial explica cómo usar el comando mail en linux para enviar correos desde la línea de comandos usando el comando mail.,

cómo funciona el comando mail

para aquellos que tienen curiosidad sobre cómo exactamente el comando mail entrega los correos a los destinatarios, aquí hay una pequeña explicación rápida.

el comando mail 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 en el puerto 25.

mail command -> /usr/sbin/sendmail -> local MTA (smtp server) -> recipient MTA (and Inbox)

esto significa que un servidor smtp como Postfix debería estar ejecutándose en la máquina donde tiene la intención de usar el comando mail., Si no se está ejecutando ninguno, aparece el mensaje de error «send-mail: Cannot open mail: 25».

Instalar el comando mail

El comando mail está disponible en muchos paquetes diferentes. Estos paquetes están disponibles en los repositorios predeterminados de la mayoría de las distribuciones populares de linux como debian, ubuntu, CentOS y fedora.

Aquí está la lista de algunos de los paquetes comunes que proporcionan el comando mail.

1. gnu mailutils
2. heirloom-mailx
3. bsd-mailx

Cada sabor tiene un conjunto diferente de opciones y características compatibles., Por ejemplo, el comando mail/mailx del paquete heirloom-mailx es capaz de usar un servidor SMTP externo para enviar mensajes, mientras que los otros dos pueden usar solo un servidor smtp local.

en este tutorial usaremos el comando mail del paquete mailutils, que está disponible en la mayoría de los sistemas basados en Debian y Ubuntu.

Use el comando apt-get para instalarlo

$ apt-get install mailutils

ahora debería tener el comando mail listo para funcionar.

ejemplos de comandos de correo

Aquí hay algunos ejemplos de cómo usar el comando de correo para enviar correos desde la línea de comandos., Estos ejemplos le darán una idea básica de las diversas opciones y características soportadas por el comando mail.

Nota: si está intentando enviar un correo de prueba a algún proveedor de correo como gmail o outlook, deberá ejecutar estos comandos en un servidor con la configuración adecuada. Si intenta enviar correo desde su máquina local o escritorio, la mayoría de los filtros de spam probablemente lo bloquearían.

1. Enviar un correo simple

ejecute el comando a continuación, para enviar un correo electrónico a la opción s especifica el asunto del correo seguido de la dirección de correo electrónico del destinatario.,

$ mail -s "Hello World" 

El comando anterior no termina al presionar Enter. A continuación tienes que escribir el mensaje. Cuando hayas terminado, presiona ‘Ctrl-D’ Al principio de una línea

$ mail -s "Hello World" Cc:Hi PeterHow are youI am fineGood Bye<Ctrl+D>

el shell pide el campo’ Cc ‘ (Carbon copy). Ingrese la dirección CC y presione enter o presione enter sin nada que omitir.

de la siguiente línea escriba su mensaje. Presionar enter crearía una nueva línea en el mensaje. Una vez que haya terminado de ingresar el mensaje, presione . Una vez que lo haga, el comando mail enviará el mensaje para su entrega y listo.

2., Asunto y el Mensaje en una sola línea

Para especificar el cuerpo del mensaje en una sola línea de comandos utilice el siguiente estilo

$ mail -s "This is the subject" <<< 'This is the message'

O así

$ echo "This is the body" | mail -s "Subject" -aFrom:Harry\<\> 

3. Tomar mensaje de un archivo

si el mensaje de correo electrónico está en un archivo, entonces podemos usarlo directamente para enviar el correo. Esto es útil cuando se llama al comando mail desde scripts de shell u otros programas escritos en Perl o php, por ejemplo.

$ mail -s "Hello World" < /home/user/mailcontent.txt

Or a quick one liner

$ echo "This is the message body" | mail -s "This is the subject" 

4., Especificar CC y BCC

Otros parámetros útiles en el comando mail son:

-c email-address (CC - send a carbon copy to email-address)-b email-address (BCC - send a blind carbon copy to email-address)

he Aquí un ejemplo de cómo puede utilizar estas opciones

$ mail -s "Hello World" -c -b 

5. Envío a varios destinatarios

también es posible especificar varios destinatarios uniéndolos con una coma.

$ mail -s "Hello World" ,

6. Especifique el nombre y la dirección de

la opción «- a » permite especificar información de encabezado adicional para adjuntar con el mensaje. Se puede usar para proporcionar el nombre y la dirección» de»., Aquí hay un ejemplo rápido

# echo "este es el cuerpo del mensaje | / mail - s" este es el asunto " - aFrom:

la opción a básicamente agrega encabezados adicionales. Para especificar el nombre del remitente, utilice la siguiente sintaxis.

 echo echo "This is the body"/mail-s "Subject" -aFrom:Harry\<\> 

tenga en cuenta que tenemos que escapar de las flechas less / great ya que tienen un significado especial para el símbolo del shell. Cuando está emitiendo el comando desde dentro de algún script, lo omitiría.

7., Enviar correo a un usuario del sistema local

para enviar correo a un usuario del sistema local, simplemente use el nombre de usuario en lugar de la dirección del destinatario

$ mail -s "Hello World" username

También puede agregar «@hostname» al nombre de usuario, donde el nombre de host debe ser el nombre de host del sistema actual.

8.

a veces, cuando se prueban servidores de correo, es recomendable comprobar los comandos SMTP que utiliza el comando mail., Use la opción» – v»para ese

$ mail -v -s "This is the subject" <<< 'This is the message'

si el correo no se entrega debido a un servidor de correo configurado incorrectamente, por ejemplo, el registro de comandos smtp mostrará lo que ha salido mal.

enviar correo con archivos adjuntos usando Mutt

el comando mail podría hacer algunas cosas básicas hasta ahora, pero en el futuro, carece de características importantes como el envío de archivos adjuntos.

así que tenemos que usar otra herramienta de línea de comandos llamada mutt. Mutt es como una versión mejorada del comando mail con una sintaxis muy similar.

Los usuarios de Debian / Ubuntu pueden instalar mutt con el comando apt.,

$ apt-get install mutt

usuarios de Fedora/CentOS o Red Hat Enterprise Linux (RHEL):

$ yum install mutt

ahora está listo para enviar correo con archivos adjuntos con interfaz de línea de comandos.

Send a simple mail

$ echo "This is mutt from universe" | mutt -s "This is mutts subject" 

Send mail with attachment

Use la opción «A» para especificar la ruta del archivo a adjuntar

$ mutt -s "Subject" -a /path/to/file -- < home/user/mailcontent.txt

de acuerdo con la sintaxis de mutt options, es necesario separar los archivos y los destinatarios con un doble guion».». También la opción» – a » debe ser la última.,

enviar correo con scripts bash/shell

este ejemplo muestra cómo la salida de un comando se puede utilizar como mensaje en el correo electrónico.
Aquí hay un script de shell fácil que informa el uso del disco por correo.

#!/bin/bashdu -sh | mail -s "disk usage report" 

abra un nuevo archivo y agregue las líneas anteriores a ese archivo, guárdelo y ejecute en su caja. Recibirá un correo electrónico que contiene la salida «du-SH».

leer correos

esto no es algo interesante y usted no estaría haciendo esto en un escenario de la vida real. Solo se muestra por el bien de ella.

el comando mail se puede usar para leer correos., Simplemente ejecútelo sin opciones y listará todos los correos en su bandeja de entrada

$ mail

Aquí hay una salida de muestra

$ mailHeirloom mailx version 12.5 6/20/10. Type ? for help."/var/mail/enlightened": 7 messages 3 unread O 1 Enlightened Sat Dec 6 11:33 21/658 This is the subject O 2 Enlightened Sat Dec 6 11:34 773/25549 This is the subject O 3 Enlightened Sat Dec 6 16:43 20/633 This is the subject O 4 Enlightened Sat Dec 6 16:44 20/633 This is the subject U 5 Mail Delivery Syst Sat Dec 6 16:50 74/2425 Undelivered Mail Returned to Sender U 6 Enlightened Sat Dec 6 16:51 19/632 This is mutts subject U 7 Enlightened Sat Dec 6 16:52 19/647 This is mutts subject?

al final hay un signo de interrogación q que es un indicador interactivo esperando su comando. Simplemente ingrese el número del correo electrónico que desea leer y presione enter. Abriría el correo entonces.

después de que haya terminado de leer el correo electrónico, ingrese ‘ q ‘ y presione enter para volver. Ingrese z y presione enter para recuperar la lista de correos electrónicos.

el comando mail por defecto lee los correos del directorio » / var / mail/»., Así que cada usuario tiene un directorio de correo separado.

esta forma de almacenar y recuperar correos no es muy útil o práctica en la vida real, donde la dirección de correo consiste en un nombre de dominio junto con un nombre de usuario y un solo servidor podría alojar correos electrónicos para múltiples dominios.

Maildir-utils command

‘mu’ es un conjunto de herramientas de línea de comandos para Linux / Unix que le permiten encontrar rápidamente los correos electrónicos que está buscando.,

Los usuarios de Debian / Ubuntu pueden usar el comando apt-get para instalarlo

# apt-get install maildir-utils

para buscar correos de william con subject report use el siguiente comando –

$ mu find from:william subject:report

para verificar las configuraciones actuales de correo use la opción info.

# mu-tool infoVERSION=2.99.97SYSCONFDIR=/etcMAILSPOOLDIR=/var/mail/SCHEME=mboxLOG_FACILITY=mail.....

notas y recursos

el comando mail es un comando muy básico para enviar correos. Debe estar presente y correctamente configurado en cualquier servidor linux, para que los correos se generen y entreguen correctamente.,

el comando mail se utiliza principalmente cuando se escriben scripts bash para enviar correos electrónicos desde un servidor de forma automatizada. Además de esto, el comando mail no es muy útil como una solución de correo electrónico.

si necesita configurar un sistema de correo electrónico completo en su servidor con la capacidad de enviar y recibir correos electrónicos en su propio dominio, siga adelante e instale aplicaciones como postfix, dovecot.

consulte este artículo:
instalar Postfix mail server y Dovecot en Ubuntu o Debian

si está buscando un programa de correo más potente use comandos como mailx, swaks, etc., Tienen las opciones necesarias para especificar servidores SMTP externos también.

Leave A Comment