C’est peut être banal, mais je ne sais pas si vous êtes déjà demander comment envoyer un mail depuis votre précieux Raspberry-Pi.
Il existe une commande en shell qui permet le faire.
echo "Contenu du mail" | mail -s "Titre du mail" [email protected]
Cette commande sera utilisée par la suite soit par un serveur web, soit par des scripts shell il est donc indispensable de l’installer.
Le problème c’est que nativement la commande mail n’est pas disponible sur le Raspberry-Pi voici donc comment l’installer et configurer par la même occasion le serveur smtp.
Installation de la commande mail et des utilitaires
sudo apt-get install mailutils mpack
Il existe aussi un autre paquet pour la commande mail
sudo apt-get install heirloom-mailx
[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]
Installation de ssmtp
ssmtp permet à des applications d’envoyer des courriels via la commande /usr/sbin/sendmail. ssmtp ne fait que rediriger les courriers vers un serveur SMTP externe. C’est donc un outil très léger et rapide, et qui ne demande que très peu de paramétrage. (Source : http://doc.ubuntu-fr.org/ssmtp)
sudo apt-get install ssmtp
Configuration de SSMTP
Dans cet exemple nous utiliserons le smtp de Gmail, de mémoire si vous êtes chez free vous devrez activer la fonction smtp dans la Freebox. (pas de support pour free dsl 🙁 )
sudo nano /etc/ssmtp/ssmtp.conf
Ce fichier doit contenir les paramètres suivants:
[email protected] mailhub=smtp.gmail.com:587 hostname=srvweb AuthUser= [email protected] AuthPass=monbeauPaSsWoRd FromLineOverride=YES UseSTARTTLS=YES
Si vous utilisez la validation en deux étapes il va falloir générer un mot de passe d’application.
Ctrl+X, puis Y ou O pour valider et fermer le fichier.
Et ssmtp prend en compte les nouveaux paramètres.
Test envoi de mail
Faisons un test d’envoi de mail :
echo "Contenu du mail" | mail -s "Titre du mail" [email protected]
Vous avez peut être remarqué que j’ai mis un +srvweb, Gmail gère les alias ce qui me permet de filtrer plus facilement dans ma boite mail les messages arrivant de tel ou tel serveur.
Bon envoi de mail …[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]
Merci pour ce Tuto.
La commande echo « texte » | mail -s « titre » [email protected] fonctionne nikel par lancement manuel shell.
Par contre, quand j’essaie de l’integrer dans un script pas moyen (log: unable to open mail.google.com:587)
Est-ce une question de droit? ou un problème dans script?
Merci d’avance… ça me desespère!
tu utilises les bon droits ? ton script est exécuté depuis le même compte ?
En effet, c’était bien les droits… Erreur de débutant que je suis…
A tout hazard, je te pose la question:
L’étape suivante est de lancer toute les heures l’envoi de mail si condition.
Encore une fois, le script (/etc/bin/xxx.sh) fonctionne bien en manuel (connecté en userx et non root)
Quand je passe le script dans crontab(toujours userx ), rien ne se passe.
j’ai ajouté aussi dans la crontab un @reboot /etc/bin/scripty.sh qui devrait lancer un scripty, mais rien.
J’imagine que c’est encore le même problème. Ya un truc qui m’échappe avec ces droits je crois.
Merci d’avance
Tu mets quoi dans ton crontab ?
Désolé pour la réponse tardive…Cause rentrée…
Donc le script dans le crontab User fonctionne.
Encore un problème de droit et de chemin absolu dans le crontab. Le script « mail » était lancer en « root » alors qu’il aurait du se lancer en « User ».
Je vais finir par les maitriser ces questions de droits…
Merci pour tes réponses
Merci pour ce Tuto.
La commande echo « texte » | mail -s « titre » [email protected] fonctionne nikel par lancement manuel shell.
Par contre, quand j’essaie de l’integrer dans un script pas moyen (log: unable to open mail.google.com:587)
Est-ce une question de droit? ou un problème dans script?
Merci d’avance… ça me desespère!
tu utilises les bon droits ? ton script est exécuté depuis le même compte ?
En effet, c’était bien les droits… Erreur de débutant que je suis…
A tout hazard, je te pose la question:
L’étape suivante est de lancer toute les heures l’envoi de mail si condition.
Encore une fois, le script (/etc/bin/xxx.sh) fonctionne bien en manuel (connecté en userx et non root)
Quand je passe le script dans crontab(toujours userx ), rien ne se passe.
j’ai ajouté aussi dans la crontab un @reboot /etc/bin/scripty.sh qui devrait lancer un scripty, mais rien.
J’imagine que c’est encore le même problème. Ya un truc qui m’échappe avec ces droits je crois.
Merci d’avance
Tu mets quoi dans ton crontab ?
Désolé pour la réponse tardive…Cause rentrée…
Donc le script dans le crontab User fonctionne.
Encore un problème de droit et de chemin absolu dans le crontab. Le script « mail » était lancer en « root » alors qu’il aurait du se lancer en « User ».
Je vais finir par les maitriser ces questions de droits…
Merci pour tes réponses
Super tuto , merci beaucoup.
Mes php d’envoi de mail marche parfaitement sauf que maintenant je reçois un email pour chaque cron instalé dans ma crontab,
Comment je peu faire pour ne plus que recevoir ces mails.
Je ne reçois pas ces mail losque j’ouvre mes php sur un navigateur.
Merci pour vos réponse
Super tuto , merci beaucoup.
Mes php d’envoi de mail marche parfaitement sauf que maintenant je reçois un email pour chaque cron instalé dans ma crontab,
Comment je peu faire pour ne plus que recevoir ces mails.
Je ne reçois pas ces mail losque j’ouvre mes php sur un navigateur.
Merci pour vos réponse
Bonjour,
j’ai suivi à le tutoriel à la lettre, je te remercie d’ailleurs pour celui-ci. 🙂
Lors de l’envoi de mon mail, j’obtiens cette erreur :
« Impossible d’expédier le message : Processus terminé avec un état de sortie non nul »
Sais-tu d’ou cela pourrait venir?
Je te remercie d’avance 🙂
A première vue non, mais en cherchant un peu sur google tu peux trouver ce genre de piste. https://forum.ubuntu-fr.org/viewtopic.php?id=1490201
Bon courage 🙂
Bonjour,
j’ai suivi à le tutoriel à la lettre, je te remercie d’ailleurs pour celui-ci. 🙂
Lors de l’envoi de mon mail, j’obtiens cette erreur :
« Impossible d’expédier le message : Processus terminé avec un état de sortie non nul »
Sais-tu d’ou cela pourrait venir?
Je te remercie d’avance 🙂
A première vue non, mais en cherchant un peu sur google tu peux trouver ce genre de piste. https://forum.ubuntu-fr.org/viewtopic.php?id=1490201
Bon courage 🙂
Bonjour, j’avais le même problème, résolu en trouvant les problèmes là
: tail -f /var/log/mail.log
et en ajoutant
rewriteDomain=example.com
Bonjour, j’avais le même problème, résolu en trouvant les problèmes là
: tail -f /var/log/mail.log
et en ajoutant
rewriteDomain=example.com
Bonjour j’ai le même problème :
mail: impossible d’expédier le message : Processus terminé avec un état de sortie non nul
Comment avez-vous solutionné le problème ? J’ai deux raspberry, avec le même fichier de configuration ça fonctionne sur l’un mais sur l’autre pi j’ai ce message d’erreur… J’ai bien essayé d’ajouter le ´rewriteDomain’ mais rien !!!
Bonjour, je débute et je vouais testé ce tuto très bien fait par ailleurs.
Tout à bien fonctionné sauf l’envoi du mail j’obtiens ceci sur l’écho :
pi@raspberrypi:/mnt $ echo « Contenu du mail » | mail -s « Titre du mail » [email protected]
mail: impossible d’expédier le message : Processus terminé avec un état de sortie non nul
J’ai pourtant chargé avec succés:
sudo apt-get install mailutils mpack
puis
sudo apt-get install ssmtp
pour le 2eme j’ai eu ceci :
pi@raspberrypi:/mnt $ sudo apt-get install heirloom-mailx
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Fait
Aucune version du paquet heirloom-mailx n’est disponible, mais il existe dans la base
de données. Cela signifie en général que le paquet est manquant, qu’il est devenu obsolète ou qu’il n’est disponible que sur une autre source
généré un mot de passe application avec mon compte gmail
modifié le fichier ssmtp.conf comme ceci:
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=raspberrypi
# Are users allowed to set their own From: address?
# YES – Allow the user to specify their own From: address
# NO – Use the system generated From: address
#FromLineOverride=YES
[email protected]
mailhub=smtp.gmail.com:587
hostname=srvweb
AuthUser= [email protected]
AuthPass=mot_de_passe_16_chiffres_donné_par_gmail
FromLineOverride=YES
UseSTARTTLS=YES
Du coup je ne sais pas trop ou j'ai merd… Si quelqu'un a une idée?
Merci