• Envoyer des mails en ligne de commandes avec mailx

    Après avoir vu comment configurer un MTA avec PostfixExim et sSMTP, nous allons voir comment envoyer des mails en ligne de commande avec mailx.

    Tutoriel réalisé sur :

    CentOS 6.6 avec postfix-2:2.6.6-6.el6_5 et mailx-12.4-8.el6_6.

    Debian Wheezy 7.8 avec postfix 2.9.6-2 et heirloom-mailx 12.5-2+deb7u1.

    Mailx est un Mail User Agent (MUA) qui va permettre d'envoyer des mails en ligne de commande.

    Ainsi, vous pourrez l'utiliser dans vos scripts bash ou bien vos tâches cron...

    Pour installer mailx, utilisez la commande suivante :

    Ubuntu/Debian

    sudo apt-get install heirloom-mailx

    CentOS/RHEL/Fedora

    sudo yum install mailx 

    Je regarde ensuite quelles versions de mailx et postfix sont installées.

     

    Envoyer des mails en ligne de commandes avec mailx

    (cliquer sur l'image pour l'agrandir)

     

    Pour commencer, je vais envoyer un mail simple :

    Manuel mailx

    PS : les commandes mail et mailx auront les mêmes fonctions car mail est un lien symbolique de mailx.

    mailx "destinataire" et appuyez sur la touche entrée.

    insérez votre texte concernant le sujet du mail et appuyez de nouveau sur la touche entrée.

    insérez votre texte concernant le corps du mail et appuyez de nouveau sur la touche entrée.

    Une fois terminé, appuyez sur les touches Ctrl + D pour envoyer le mail.

     

    Envoyer des mails en ligne de commandes avec mailx

    (cliquer sur l'image pour l'agrandir)

     

    J'envoie le même mail avec cette fois-ci l'option -s qui précisera directement le sujet du mail.

    mailx -s "sujet du mail" destinataire et appuyez sur la touche entrée.

    insérez votre texte concernant le corps du mail et appuyez de nouveau sur la touche entrée.

    Une fois terminé, appuyez sur les touches Ctrl + D pour envoyer le mail.

      

    Envoyer des mails en ligne de commandes avec mailx

    (cliquer sur l'image pour l'agrandir) 

     

    Maintenant, j'insère directement le texte dans le corps du mail avec la commande echo.

    echo "texte corps du mail" \ |

       mail -s "sujet du mail" destinataire

     

    Envoyer des mails en ligne de commandes avec mailx

     (cliquer sur l'image pour l'agrandir) 

     

    Pour envoyer un mail à plusieurs destinataires, vous devez spécifier ceux-ci séparés par une virgule.

    echo "texte corps du mail" \ | 

       mail -s "sujet du mail" destinataire1,destinataire2

     

    Envoyer des mails en ligne de commandes avec mailx

     (cliquer sur l'image pour l'agrandir) 

     

    Pour ajouter un destinataire en copie, il faudra utiliser l'option -c ( -b pour la copie cachée )

    echo "texte corps du mail" \ |

       mail -s "sujet du mail" -c destinataire_copie destinataire

     

    Envoyer des mails en ligne de commandes avec mailx

      (cliquer sur l'image pour l'agrandir) 

     

    Pour modifier l'expéditeur du mail, il faudra utiliser l'option -r.

    ici, je modifie l'expéditeur MICKAËL EN TUXMIKA.

    echo "texte corps du mail" \ |

       mail -s "sujet du mail"  -r "nom_à_afficher<adresse_mail>" destinataire

     

    Envoyer des mails en ligne de commandes avec mailx

      (cliquer sur l'image pour l'agrandir) 

     

    Pour ajouter une pièce jointe, il faudra utiliser l'otion -a.

    echo "texte corps du mail" \ |

       mail -s "sujet du mail"  -a  /nom/du/fichier destinataire

     

    Envoyer des mails en ligne de commandes avec mailx

       (cliquer sur l'image pour l'agrandir) 

     

     

    Pour afficher le contenu d'un fichier dans le corps du mail.

    cat /nom/du/fichier | \

       mailx -s "sujet du mail" destinataire

     ou

    mailx -s "sujet du mail" \

       destinataire < /nom/du/fichier

     

    Envoyer des mails en ligne de commandes avec mailx

      (cliquer sur l'image pour l'agrandir) 

     

    Pour afficher le contenu d'un fichier dans le corps du mail et ajouter une pièce jointe. 

    cat  /nom/du/fichier | mailx -a  /nom/du/fichier \

       -s "sujet du mail" destinataire

     

    Envoyer des mails en ligne de commandes avec mailx

      (cliquer sur l'image pour l'agrandir) 

     

     

    Conclusion :

    Avec mailx, vous pourrez maintenant envoyer des mails depuis le shell....

     

     

     

    « Script de notifications de mises à jour CentOSMettre en place des quotas sous Debian »

    Tags Tags : , , , , , ,
  • Commentaires

    1
    bil
    Jeudi 14 Mai 2015 à 11:55

    Bonjour,pour moi tout marche bien,je réussi a envoyer des mails sur des adresses diverses et variées.Je voudrais envoyer un mail avec 1 seul ligne de commande (et sans faire la combinaison ctrl d).En effet je voudrais que mon raspberry m’envoie un mail en fonction de tel ou tel événement.Je suis preneur de tout script.D'avance merci de votre aide

    2
    Jeudi 14 Mai 2015 à 17:51

    Bil

    Mon tutoriel propose également l'envoi de mails sans sans faire la combinaison ctrl d.

    Sinon, regarde dans les différents scripts présents sur mon blog, tu trouveras pleins d'exemples...A toi de les adapter par la suite...

    Cordialement

    3
    amina
    Dimanche 29 Mai 2016 à 17:46

    j'ai installe postfix et j'ai envoyé message ans une seul machine.mais je n'arrive pas d'envoyer des messages vers d'autres machine clients

     

    4
    Dimanche 29 Mai 2016 à 19:37

    Bonjour Amina

    Pourrais tu être plus précise dans ta demande?

    5
    Mardi 25 Avril à 21:58

    Merci pour ce petit tuto !

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :