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" hotfirenet+srvweb@gmail.com
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:
root=monLogin@gmail.com mailhub=smtp.gmail.com:587 hostname=srvweb AuthUser= monLogin@gmail.com 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.
Rendez vous sur accounts.google.com puis onglet Sécurité
Saisir le nom du service puis générer
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" hotfirenet+srvweb@gmail.com
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 » monemail@gmail.com 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 » monemail@gmail.com 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 !!!