Linux
Mandar correo desde la línea de comandos.
mutt
En un anterior artículo había mandado un correo desde la línea de comandos utilizando curl.
Ante la imposibílidad de mandar adjuntos mediante curl ( yo no lo he podido conseguir ) , he buscado otras soluciones, y he encontrado mutt que está bastante extendido.
Lo primero es instalar el paquete mutt.
apt install mutt
Creamos los ficheros de configuración.
mkdir -p ~/.mutt/cache/headers
mkdir ~/.mutt/cache/bodies
touch ~/.mutt/certificates
Creamos el archivo de configuración.
touch ~/.mutt/muttrc
Editamos el fichero de configuración según nuestro servidor de correos.
En mi caso utilizo leafpad como editor.
leafpad ~/.mutt/muttrc
Creamos el archivo de configuración.
touch ~/.mutt/muttrc
Editamos el fichero de configuración según nuestro servidor de correos.
En mi caso utilizo leafpad como editor.
leafpad ~/.mutt/muttrc
En mi caso (GMAIL) la configuración del servidor es la siguiente |
set ssl_starttls=yes
|
El correo mandado será desde un archivo de texto, que en este caso se llama tarea23_59.txt .
Además se mandan los 3 ficheros adjuntos gra1.png , gra2.png y datos.txt.
El fichero modelo del correo tiene el siguiente formato:
tarea23_59.txt |
ESTADISTICAS DEL DIA vie may 31 08:37:58 CEST 2019 |
Se crea script donde a partir de un modelo de correo, solo cambio la última línea donde inserto la fecha.
/home/seta/tareas/tarea1.sh |
#!/bin/bash datecreated=`date` cd $HOME/tareas sed -i '$d' tarea23_59.txt echo $datecreated >> tarea23_59.txt mutt -s "temperaturas" CORREO_DESTINO.com < tarea23_59.txt -a $HOME/www/webcam/gra1.png -a $HOME/www/webcam/gra2.png -a $HOME/www/webcam/datos.txt |
Ya tenemos el script creado, pero nos falta que el script se ejecute a las 23:59.
Para esta tarea utilizaremos cron. El comando cron es un administrador regular de procesos en segundo plano que viene de serie en linux.
Para añadir el comando que se debe ejecutar en segundo plano, utilizaremos el comando crontab -e .
Y editaremos de la siguiente forma:
59 23 * * * /home/seta/tareas/tarea23_59.sh >/dev/null 2>&1
De esta forma el script se ejecutará a las 23:59 .
Saludos
Juan Galaz
Bibliografía:
https://www.garron.me/es/gnu-linux/correo-linea-commands-gmail-mutt.html
https://ubunlog.com/mutt-cliente-correo-terminal/