Veamos cómo enviar un correo desde la línea de comandos de nuestra Raspberry Pi con Raspbian como sistema operativo.
Desde hace un tiempo cambié openSUSE Tumbleweed en mi Raspberry Pi por Raspbian, una derivada de Debian especialmente orientada para este pequeño hack.
La verdad es que estoy muy contento con el cambio, se comporta de manera eficiente y estable, características deseadas en un pequeño servidor que corre un NextCloud y algunos servicios más…
Ya hace un tiempo escribí un tutorial sobre cómo mandar correos mediante la línea de comandos, un tutorial que funcionaba perfectamente en mi openSUSE, pero que en Debian no conseguí hacer que funcionara de la misma manera.
Después de mucha búsqueda en tutoriales copiados unos de otros, en respuestas y tutoriales que no me terminaban de funcionar, etc al final conseguí que en Raspbian desde la línea de comandos pudiera mandar un correo, ¿os interesa saber cómo lo hice?
Lo primero que hay que hacer es instalar ssmtp el paquete de software que nos permitirá enviar correos. Por tanto hay que ejecutar los consabidos:
apt update apt upgrade apt install ssmtp
Hecho esto deberemos ir a la ruta /etc/ssmtp y abrir el archivo con el editor que prefieras y editar el archivo ssmtp.conf yo lo tengo así (copio sólo las líneas que no están comentadas en el archivo):
root=tu_usuario@tu_correo.org mailhub=smtp.tu_correo.org:465 FromLineOverride=YES AuthUser=tu_usuario@tu_correo.org AuthPass=tu_contraseña_segura UseTLS=YES UseSTARTTTSL=YES
Deberás adaptarlo a tu configuración, por tanto la parte en negrita deberás rellenarlo con tus propios datos. En tu_usuario deberás poner el nombre de usuario que tengas en tu correo y en tu_correo.org el proveedor de correo en el que tengas la cuenta de tu_usuario.
Quizás en algún caso debas cambiar el puerto :465 por otro puerto, eso dependerá de tu proveedor de correo. Y en tu_contraseña_segura reemplazalo por la contraseña de tu servicio de correo y guardamos el archivo
Ahora crearemos un archivo llamado correo.txt (o el nombre que quieras ponerle) y en él escribimos el correo que queramos, pero las líneas del encabezado de a quién se envía, el asunto y quién lo envía serán obligatorias, el cuerpo del correo ya podemos poner lo que queramos, por ejemplo:
To: tannhausser@hackmail.com Subject: Probando, probando From: victorhck@flipmail.org ----------------------------- Enviando un correo desde la línea de comandos de mi Raspberry Pi con Raspbian. Un placer leer tu blog!! Happy hacking
La línea en blanco final será tomada en cuenta como el final del archivo. Ahora mandaremos el correo, para ello ejecutaremos el siguiente comando (se puede usar tanto sendmail como ssmtp):
sendmail -vt < correo.txt
El comando -v nos ofrecerá información del proceso de envío del correo, podemos no ponerlo. Con esto el comando sendmail enviará el correo con lo escrito en el archivo correo.txt
No hace falta decir, que el correo lo podemos escribir nosotros o podemos rellenarlo con un script, lo que multiplica las posibilidades ¿verdad? Pero de eso ya escribiré en otro tutorial, permanezcan a la escucha!!
Otras opciones que he probado con sendmail o ssmtp no me funcionaban, esta fue la única con la que conseguí hacerlo y la comparto por aquí por si te puede ser útil.
————————————————————————
Me daba un error de “authentication” con gmail
He ido a mi cuenta y he activado en
seguridad -> acceso a aplicaciones menos seguras -> activar
y ya ha funcionado bien.
Genial !
Gracias
Me alegro! Gracias por el aporte de tu experiencia!
Saludos
No me da error, pero no me envía nada. en la consola me aparece esto:
[<-] 220 smtp.gmail.com ESMTP w12sm2416263edq.94 – gsmtp
[->] EHLO pi
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO pi
[<-]
sendmail: (pi)
Están bien los archivos de configuración?
No sé qué puede ser…
No me funciona ya que no me deja guardar el archivo de la configuración