Enviar emails con mailx y Gmail en CentOS

Vamos a ver cómo enviar mails con mailx en Linux CentOS 7.

 
enviar mails con mailx en CentOS
 
Mailx necesita un servidor local SMTP (MTA : Mail Transfer Agent) para poder enviar los mails.

 

Lo primero actualizamos el sistema

yum -y update

 

E instalamos mailx:

yum install -y mailx

 

Creamos un enlace simbólico:

ln -s /bin/mailx /bin/email

 

Ahora tenemos que configurar el servidor SMTP para realizar envíos, y usar el de Google:

vi /etc/mail.rc

 

Editamos el fichero de configuración para enviar emails con nuestra cuenta de gmail, y lo configuramos así:

set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login
set smtp-auth-user=usuario@gmail.com
 
set smtp-auth-password=PASSWORD
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

 

Y ahora enviamos un email de esta forma por medio de la terminal:

 

echo "cuerpo del mail" | mail -v -s "Message Subject" destinatario@correo

 

 

Parámetros de mailx

 

 

-a archivo  : adjunta un archivo al mensaje.

-b lista  :  pone en copia oculta a “lista”. Las direcciones de “lista” han de estar separadas por coma.

-c lista  : pone en copia a “lista”. Las direcciones de “lista” han de estar separadas por coma.

-d  : habilita el modo debugging y deshabilita la entrega real de mails. Está pensado para fines de desarrollo.

-q (archivo)  : utiliza el contenido de un archivo como cuerpo del email.

-r   : establece la dirección del remitente.

-s   : subject. El asunto del email.

-v   : Verbose mode. Muestra por pantalla los detalles del envío.

 

TE RECOMENDAMOS  Cambiar la contraseña de usuarios Linux con stdin, en una línea de comando

 

Varias formas de enviar mail con mailx

 

Mail simple

 
Tecleamos el comando

mail -s "asunto del mail" destinatario@correo

Y comenzamos a escribir el contenido del mail. Podemos pulsar enter para añadir nuevas líneas.

Cuando acabemos el mail tecleamos Ctrl + D y mailx mostrará EOT

Tras eso, el mail se enviará

 

 

$ mail -s "asunto del mail" destinatario@correo
Hola a alguien
Cómo estás
Estoy bien
Adiós
EOT

 

 

 

 

Tomar el mensaje de un archivo

 
El cuerpo del email será el contenido de un fichero.

$ mail -s "asunto del mail" destinatario@correo < /ruta/al/fichero

 

 

También podemos añadir el mensaje por medio de una tubería y el comando “echo”

echo "cuerpo del mail" | mail -s "asunto del mail" destinatario@correo

 

 

Enviar mail a múltiples destinatarios

 
Para enviar el email a varios destinatarios, especificamos las direcciones de correo separándolas con una coma:

echo "cuerpo del mail" | mail -s "asunto del mail" destinatario1@correo,destinatario2@correo

 

 

Usar Cc y CCO  (enviar a “en copia” y “con copia oculta”)

 
Usaremos las opciones -b (copia oculta) y -c (en copia):

echo "something" | mailx -s "asunto" -b copia_oculta@correo -c en_copia@correo  -r remitente@correo destinatario@correo

 

TE RECOMENDAMOS  Matar Procesos en Linux

 

 

Especificar el nombre y la dirección desde la que se envía el mail

 
Usaremos la opción -r

Detrás del nombre debemos poner la dirección envuelta en “<>”

$ echo "cuerpo del mail" | mail -s "asunto del mail" -r "NOMBRE<minombre@gmail.com>" destinatario@correo

 

 

Especificar la dirección “Responder a”

 
Podemos especificar la dirección de respuesta, usando la opción -S y la variable”replyto”

 

# email con "responder a"
$ echo "cuerpo del mail" | mail -s "asunto del mail" -S replyto="buzon@gmail.com" destinatario@correo
# email con "responder a" y un nombre
$ echo "cuerpo del mail" | mail -s "asunto del mail" -S replyto="nombre<remitente@gmail.com>" destinatario@correo

 

 

Adjuntos

 
Podemos añadir adjuntos con la opción -a

$ echo "cuerpo del mail" | mail -s "asunto del mail" -r "NOMBRE<remitente@gmail.com>" -a /ruta/al/archivo destinatario@correo

 

 

Usar un SMTP externo

 

$ echo "cuerpo del mail" | mailx -v -r "remitente@correo" -s "asunto del mail" -S smtp="smtp.loquesea:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="mail_del_smtp@correo" -S smtp-auth-password="abc123" -S ssl-verify=ignore destinatario@correo

Si tenemos problemas para enviarlo podemos eliminar la línea:

-S smtp-use-starttls

 

 

Error con mailx usando Gmail : “Username and Password not accepted“ (Acceso de aplicaciones poco seguras)

 

Es bastante probable que, usando gmail como smtp en mailx, recibamos el error:

535-5.7.8 Username and Password not accepted. Learn more at smtp-server: 535-5.7.8 …

 

mailx - error envío con gmail

 

 
Si estás seguro de que has introducido correctamente tu usuario y contraseña, entonces el problema es que tienes que habilitar el acceso a aplicaciones poco seguras en tu cuenta de Gmail.

Has de acceder a tu cuenta de Gmail, a la sección “Acceso de aplicaciones poco seguras“, y permitir el acceso de aplicaciones poco seguras:

 

mailx - gmail activar acceso de aplcaciones poco seguras

 

 

mailx - gmail activar acceso de aplcaciones poco seguras - 2

 

Permitir el acceso de aplicaciones poco seguras: SÍ

 

gmail - permitir el acceso de aplicaciones poco seguras
 

 

Hecho esto, ya podrás enviar correctamente emails con mailx, usando como smtp tu cuenta de gmail:

 
mailx enviado con gmail