Cet article va vous permettre d’envoyer des mails depuis le terminal ou avec la fonction mail de php en utilisant le smtp de gmail.
C’est à dire que les mails seront envoyés par le biais de votre adresse perso gmail. Que ce soit pour être alerté d’une présence (avec une photo en pièce jointe), des mises à jours de sécurité à appliquer ou que sais-je encore…
Créer un mot de passe spécifique
Rendez-vous sur la page Mots de passe d’application de google et renseigner comme ceci :
Sélectionner une application -> Messagerie
Sélectionner un appareil -> Autre (nom personnalisé) -> Raspberry Pi
Vous obtiendrez un mot de passe spécifique qui a l’avantage de pouvoir être révoqué en cas de doute sur la sécurité de votre Raspberry Pi et de pouvoir envoyer des mails sans avoir à effectuer l’authentification en deux étapes.
Installer les packages
1 |
sudo apt-get install exim4 exim4-config |
puis
1 |
sudo dpkg-reconfigure exim4-config |
Choisir la première ligne “Distribution directe par SMTP (site Internet)”
Distribution directe par SMTP (site Internet) : RaspberryPi
Liste d’adresses IP : 127.0.0.1 ; ::1_
Autres destinations : RaspberryPi
RaspberryPi : (laisser vide)
Machines à relayer : (laisser vide)
Faut-il minimiser les requêtes DNS : Non
Format « mbox » dans /var/mail
Faut-il séparer la configuration dans plusieurs fichiers ? Non
Destinataire des courriers de « root » et « postmaster » : (laisser vide)
1 |
sudo nano /etc/exim4/passwd.client |
ajouter les lignes à la fin du fichier en modifiant votre adresse et votre mot de passe (celui générer au début du tuto)
1 2 3 |
gmail-smtp.l.google.com:<mon_adresse>@gmail.com:<mon_mot_de_passe> *.google.com:<mon_adresse>@gmail.com:<mon_mot_de_passe> smtp.gmail.com:<mon_adresse>@gmail.com:<mon_mot_de_passe> |
Il faut relancer Exim4 :
1 2 |
sudo update-exim4.conf sudo /etc/init.d/exim4 restart |
Courage on touche au bout :
1 |
sudo apt-get install ssmtp mailutils mpack |
ssmtp pour permettre l’utilisation du smtp de gmail
mailutils & mpak pour envoyer des mails en shell
1 |
sudo nano /etc/ssmtp/ssmtp.conf |
Supprimer les deux ligne :
1 2 |
# The full hostname hostname=******* |
Et ajouter à la fin (en remplaçant le nom et le mot de passe une fois de plus)
1 2 3 4 5 |
mailhub=smtp.gmail.com:587 hostname=RaspberryPi AuthUser=<mon_adresse>@gmail.com AuthPass=<mon_mot_de_passe> useSTARTTLS=YES |
Cron et d’autres services vont certainement vouloir envoyer des mails, pour qu’ils soient bien routés, il faut ajouter ces deux lignes à la fin du fichier /etc/aliases :
1 2 |
root: pi pi: <mon_adresse>@gmail.com |
Tester
Avec php mail()
1 2 3 4 5 6 7 8 9 10 |
<?php $to = '<mon_adresse>@gmail.com'; $subject = 'Sujet'; $message = 'Bonjour.'; $headers = 'From: MonRaspberry <<mon_adresse>@gmail.com>' . "\r\n" . 'Reply-To: <mon_adresse>@gmail.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?> |
Avec mailutils dans le terminal :
1 |
mail -s "Sujet" <mon_adresse>@gmail.com |
Taper le texte, et pour envoyer il faut taper un point + [entrée] sur une nouvelle ligne.
Vous avez des tâches cron ?
Désormais, votre cron daemon va vous envoyer des alertes à chaque exécution d’une tâche. Voici comment paramétrer les alertes cron :
1 2 3 4 5 6 7 8 9 10 |
# Recevoir un mail de toutes les commandes cron, ajouter en début de fichier : MAILTO=<mon_adresse>@gmail.com # --- Sinon, pour faire du cas par cas --- # Recevoir un mail : mm hh jj MMM JJJ tâche | mail -s "Sujet" <mon_adresse>@gmail.com # NE PAS recevoir un mail : mm hh jj MMM JJJ tâche >/dev/null 2>&1 |