Basado en Linux Debian 10

email-via-terminal-con-msmtp-y-gmail

YouTube

Proyecto P4Para enviar y recibir correos desde la Terminal de nuestro Linux Debian Base podemos instalar un servidor de correo que se ocupe de hacer esta tarea pero no es lo que necesito para el proyecto P4.

Lo que necesito es que mi servidor pueda enviar correos desde la terminal y que no lleguen a la carpeta de SPAM o Correo no deseado.

Los únicos correos que mi maquina tiene que enviar son los correos que generan mis scripts al ser invocados desde el administrador de tareas CRON.

Por ejemplo, tengo un script que cada día se ejecuta y mira cuanto espacio hay ocupado en cada partición. Si el espacio de alguna partición supera el 90% me envía un mail automáticamente diciendo que estoy a 90% de consumo y me falta espacio.

Si nuestro servidor se queda sin espacio en el disco duro el sistema se volverá inestable llegando un momento en el que no puedas ni identificarte porque cada vez que te identificas por SSH se escribe un fichero Log y si no puede escribir porque no hay espacio el sistema colapsa.

Como mi servidor es una maquina donde quiero instalar lo justo y necesario para que cumpla con las finalidades que yo le programe no voy a instalar un servidor de correo completo que envié y reciba mails ya que es innecesario y también haría mi servidor mas inseguro.

Tendría que tener puertos que no quiero tener abiertos, programas ejecutándose en memoria como el postfix o dovecot y también sería otra cosa que tendría que administrar y no es lo que necesito.

Lo que necesito es que mi maquina pueda enviar mails desde la terminal sin tener ningún servidor de correo instalado.

Enviar correos Gmail desde la Terminal

Para ello necesitamos un servidor SMTP que nos deje enviar mensajes y Google nos deja usar su Gmail siempre y cuando se lo especifiquemos.

Aconsejo crear una cuenta exclusiva para esto ya que hay que desactivar la verificación en dos pasos y activar el acceso de aplicaciones poco seguras para que pueda trabajar con nuestra maquina.

Una vez tengamos esta cuenta @gmail.com nos identificamos en la terminal de nuestra maquina como root con …

su

Continuamos instalando los siguiente paquetes …

apt-get install msmtp msmtp-mta mailutils

Ahora vamos al directorio de root que será quien envíe mails automáticamente al ejecutarse los scripts …

cd /root/

Ahora vamos a crear el archivo .msmtprc

vi .msmtprc

Ahora introducimos lo siguiente …

# Configuración para usar el SMTP de Gmail

defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
account gmail
host smtp.gmail.com
port 587
from tumail@gmail.com
user tumail@gmail.com
password tucontraseña

account default : gmail

Guardamos el fichero y salimos del editor pulsando la tecla ESC y :wq!

Configuración de Gmail para el envío por Terminal

Ahora abrimos un navegador, nos identificamos en Google con la cuenta Gmail que vamos a utilizar y hacemos click sobre la siguiente dirección

gmail

En esta sección tenemos que marcar y seguidamente hacer click sobre la flechita situada a la izquierda <- Acceso de aplicaciones poco seguras

google

En esta sección hay que tener tanto él inicio de sesión con teléfono y la verificación en dos pasos desactivada.

No es nada seguro guardar datos sensibles como contraseñas en un fichero de texto plano como el .msmtprc que tenemos en nuestro directorio /root/ pero si queremos hacer esto que necesito no me queda otra. Por eso mismo he creado una cuenta de Gmail exclusivamente para que la use mi servidor.

Ahora podemos enviar mails desde la terminal y con ello también nuestra maquina podrá hacerlo por ella misma sin tener que tener ningún servidor de correo instalado.

Enviar correo desde la Terminal con Gmail

Con la siguiente linea de comandos podemos enviar un mail desde nuestra terminal usando Gmail

echo "este es el mensaje del mail" | mail -s "asunto del mail" maildestinatario@dominio.com

En el podemos escribir en mensaje, el asunto y el mail a quien queremos que vaya dirigido, como podéis ver funciona 😉

Más adelante os mostraré los scripts que uso y podremos hacer que este servicio de envío de correos que ahora incorpora nuestro servidor sea más útil que no solo enviar email vía terminal usando Gmail.