• Passer à la navigation principale
  • Passer au contenu principal
  • Passer à la barre latérale principale
  • Passer au pied de page
Hotfirenet

Hotfirenet

le blog d'un papa Geek

  • Actualités info
  • Domotique
    • Jeedom
  • Catégories
    • Comment faire
    • Développement
    • Edito
    • Multimédia
    • Retour d’expérience

Envoyer un mail depuis le Raspberry-Pi

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.

01 - la commande mail n existe pas

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.

07 - envoi de mail

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.

08 - reception du mail

Bon envoi de mail …[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

À propos Djo

Autodidacte, curieux et motivé.

Interactions du lecteur

Commentaires

  1. Hog dit

    27 août 2014 à 8 h 56 min

    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!

    Répondre
    • Johan dit

      27 août 2014 à 9 h 03 min

      tu utilises les bon droits ? ton script est exécuté depuis le même compte ?

      Répondre
      • Hog dit

        27 août 2014 à 17 h 19 min

        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

        Répondre
        • Djo dit

          31 août 2014 à 21 h 31 min

          Tu mets quoi dans ton crontab ?

          Répondre
          • Hog dit

            3 septembre 2014 à 15 h 50 min

            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

  2. Hog dit

    27 août 2014 à 8 h 56 min

    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!

    Répondre
    • Johan dit

      27 août 2014 à 9 h 03 min

      tu utilises les bon droits ? ton script est exécuté depuis le même compte ?

      Répondre
      • Hog dit

        27 août 2014 à 17 h 19 min

        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

        Répondre
        • Djo dit

          31 août 2014 à 21 h 31 min

          Tu mets quoi dans ton crontab ?

          Répondre
          • Hog dit

            3 septembre 2014 à 15 h 50 min

            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

  3. tomtom dit

    3 octobre 2014 à 15 h 07 min

    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

    Répondre
  4. tomtom dit

    3 octobre 2014 à 15 h 07 min

    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

    Répondre
  5. NoobsWithRaspberry dit

    8 avril 2016 à 18 h 35 min

    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 🙂

    Répondre
    • Djo dit

      13 avril 2016 à 10 h 52 min

      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 🙂

      Répondre
  6. NoobsWithRaspberry dit

    8 avril 2016 à 18 h 35 min

    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 🙂

    Répondre
    • Djo dit

      13 avril 2016 à 10 h 52 min

      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 🙂

      Répondre
  7. Klem dit

    13 juin 2016 à 23 h 51 min

    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

    Répondre
  8. Klem dit

    13 juin 2016 à 23 h 51 min

    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

    Répondre
  9. busshi dit

    16 février 2020 à 14 h 44 min

    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 !!!

    Répondre

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Barre latérale principale

Catégories

  • Actualités info
  • At-Home
  • Bon plan
  • Comment faire
  • Développement
  • Domotique
  • Edito
  • High-Tech
  • Jeedom
  • Multimédia
  • Open-Source
  • Retour d’expérience
Infomaniak, l'hebergeur vert

Footer

A PROPOS

Hotfirenet.Com est un blog Geek et High-Tech qui touche au développement informatique, nouvelles technologies, Web, domotique, drones, impression 3D .... En savoir plus…

Djo: Afficher mes articles de blog

PSSST, et si on bossait ensemble ?

Mes compétences ? Le web et le développement informatique. Besoin d’un développement de sites web ? de rédaction de contenu web, d’une expertise en SEO et médias sociaux ? Ou bien vous souhaitez me proposer un partenariat ?

Tous droits réservés © 2021

  • Mentions légales
  • Contact