Aller au contenu

Envoyer un mail depuis le RPi

Configurer un compte Gmail:

Sécurité -> Allow less secure apps

Installer SSMTP

$ sudo apt-get install ssmtp
Installer mpack (pour envoyer des PJ)
$ sudo apt-get install mpack

Configurer SSMTP

https://wiki.archlinux.org/index.php/SSMTP

$ sudo nano /etc/ssmtp/ssmtp.conf

et ajouter ces lignes:

root=username@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=password
FromLineOverride=YES
UseTLS=YES
$ sudo nano /etc/ssmtp/revaliases

Vérifier le log:

$ tail -f /var/log/mail.log
$ tail -f /var/log/syslog

Sécuriser ssmtp.conf

Ajouter le groupe ssmtp

$ sudo groupadd ssmtp

Donner le groupe ssmtp au fichier ssmtp.conf

$ sudo chown :ssmtp /etc/ssmtp/ssmtp.conf

Donner le groupe ssmtp au fichier à l'exécutable ssmtp

$ sudo chown :ssmtp /usr/sbin/ssmtp

S'assurer que juste root et le group ssmtp ont accès au fichier ssmtp.conf

$ sudo chmod 640 /etc/ssmtp/ssmtp.conf

Mettre le bit SGID à l'exécutable ssmtp

$ sudo chmod g+s /usr/sbin/ssmtp

Envoyer un email:

$ echo 'Test text' | mail -s 'Test Mail' username@domaine.com
$ ssmtp username@domaine.com
subject: ceci est un test !
hello world !
<CTRL>+D pour envoyer
$ echo "Hello world email body" | mail -s "Test Subject" username@gmail.com

Envoyer un fichier:

$ mpack -s 'Test image en PJ' o.jpg username@domaine.com

Envoyer un mail et une PJ:

$ nano mail_template.txt
Bonjour,

Ci-joint la photo demandée.

Cordialement.

$ mpack -s 'Test image en PJ' -d mail_template.txt image.jpg username@gmail.com

Changer le from name = 'root'

$ sudo nano /etc/passwd
# Remplacer
root:x:0:0:root:/root:/bin/bash
# par
root:x:0:0:RPi3:/root:/bin/bash

Envoyer un message avec PHP:

  1. Editer le fichier de conf de PHP
$ nano /etc/php/apache/php.ini
  1. Vérifier la ligne sendmail_path
sendmail_path = /usr/sbin/sendmail -t -i
  1. Créer un fichier mailtest.php

    <?php
    $to = “targetperson@example.com”;
    $subject = “PHP Test mail”;
    $message = “This is a test email”;
    $from = “you@your.domain”;
    $headers = “From: . $from;
    mail($to,$subject,$message,$headers);
    echo “Mail Sent.;
    ?>
    

  2. puis

$ php mailtest.php

Envoyer un message avec Python:

import smtplib

https://myhydropi.com/send-email-with-a-raspberry-pi-and-python


Dernière mise à jour: March 15, 2019