Envoyer un mail depuis son Raspberry Pi

Rédigé par Aurélien Aucun commentaire
Classé dans : Informatique Mots clés : Raspberry-pi, mail, script
raspberry-pi

J'écris cet article dans la foulé à mes bricoles sur mon Raspberry Pi. Cet article est donc là pour faire un résumé des choses à faire pour envoyer un simple mail (sans pièce jointe) depuis un Raspberry Pi (pour ma part un Pi 3 b+). En bonus, je te montrerai un petit script qui s’exécute après un redémarrage.

Pré-requis

Toutes les manipulations ont été réalisé depuis une version de Raspbian Stretch Lite avec l'utilisateur pi.

  • Première étape, une petite mise à niveau:
    sudo apt update && sudo apt upgrade
  • Installation des paquets ssmtp et bsd-mailx:
    sudo apt install ssmtp bsd-mailx

Configuration

Avant de pouvoir envoyer un mail il va falloir que tu configures ssmtp. Pour ce faire:

  • il faut éditer en root le fichier /etc/ssmtp/ssmtp.conf
    sudo nano /etc/ssmtp/ssmtp.conf
  • Et modifier ou ajouter les valeurs suivantes :
    mailhub=smtp.online.net:587
    
    #Authentication
    AuthUser=mon_mail@domaine.fr
    AuthPass=mon_super_mon_de_passe
    useSTARTTLS=YES
    useTLS=YES
Il faut bien évidement adapter les valeurs avec les vôtres. Pour ma part je suis chez online.net. Mais cela peut varier en fonction de ton fournisseur mail.

Petite astuce: tu peux créer une adresse mail spécifique pour l'envoi automatique de mail.

Premier essai

Normalement, si tu as bien configuré ssmtp, tu devrais pour envoyer ton premier mail depuis le Raspberry Pi avec la commande suivante:

echo "Salut, ici c'est le corps du mail!" | mail -s "Mon sujet du mail" mon_destinataire@domaine.com
C'est à toi de jouer maintenant!

Bonus

En bonus, je t'offre un petit script (alert_uptime.sh) qui t'enverra un mail deux minutes après que le Raspberry Pi ai redémarré. Cela permet de s'assurer que tout fonctionne après une coupure électrique par exemple. Dans ce script J'extrais le temps de fonctionnement du Pi, le statut de pi-hole, et les températures du Pi.

#!/bin/bash
############################
# ALERTING MAIL FOR REBOOT #
############################
#crontab cmd: @reboot sleep 120 && /home/pi/script/alert_uptime.sh

PI_UPTIME=$(uptime -p)
PI_HOLE_STATUS=$(/usr/local/bin/pihole status)
PI_TEMP=$(/home/pi/script/pi_temp.sh)

FROM="pi@pi-hole.local"
TO="destinataire_alerte@domaine.fr"
SUBJECT="[ALERT] ${HOSTNAME} have rebooted !"
TEXT="This alert was send because ${HOSTNAME} has rebooted!\nNew uptime : ${PI_UPTIME}\n\nPi-hole status :\n${PI_HOLE_STATUS}\n\nPi temperature :\n${PI_TEMP}"

echo -e "${TEXT}" | mail -r "${FROM}" -s "${SUBJECT}" "${TO}"
Pour que script fonctionne, il faut:
  • Éditer la crontab
    crontab -e
    
  • Et ajouter la ligne suivante:
    @reboot sleep 120 && /home/pi/script/alert_uptime.sh
    

Écrire un commentaire

Quelle est la troisième lettre du mot blqu ?

Fil RSS des commentaires de cet article