Aller au contenu
Couillaman le site une demo bientot ! ×

Part 3 Guide sur l’installation d’un serveur sous Debian 7 (Wheezy)


dokuro
 Share

Messages recommandés

  • Guide Debian 7 (partie 3/8) : envoyer des mails depuis la ligne de commande  

 

  • Introduction

    Le but de cette partie est de permettre l’envoi de mails depuis la ligne de commande.

    Ainsi, je ne vous parlerai pas ici de l’installation d’un serveur de mails complet, car cette étape serait bien trop longue et fastidieuse étant donné le résultat attendu.

    Comment ça marche ?

    Nous allons utiliser pour cela un client SMTP léger, dont le rôle sera d’envoyer les e-mails en passant par un relai SMTP. Dans la majorité des cas, ce relai sera mis à votre disposition par votre prestataire.

    Ce type d’envoi sera particulièrement utile pour les utilitaires capables de générer des rapports (fail2ban, cron-apt, …) de leur activité et de les envoyer par mail à l’administrateur du serveur, c’est à dire vous.

    Mon prestataire ne propose pas de relai SMTP

    Selon le prestataire que vous aurez retenu, vous vous retrouverez généralement face à deux cas de figure :

    Testons l’envoi de mail

    Dans un premier temps, nous allons devoir tester l’envoi de mail car il est possible que votre prestataire l’ait déjà configuré pour vous (chez certains prestataires, les fichiers de confs sont préremplis à l’installation de la distribution) :

    Lancer la ligne suivante en y insérant votre adresse mail (il est possible que le mail arrive dans vos spams) :

     
    1
    echo "Mail envoyé le $(date)" | mail -s "Test envoi de mail depuis $HOST" votre_adresse@exemple.com

    À partir d’ici, si l’envoi fonctionne, nul besoin d’aller plus loin. Dans le cas contraire, il va nous falloir installer ssmtp. Ne paniquez pas, la configuration est enfantine.

    Méthode ssmtp (passer par le SMTP de votre prestataire)

    [source : http://doc.ubuntu-fr.org/ssmtp]

    Nous allons commencer par installer le client ssmtp :

     
    1
    aptitude install ssmtp

    Pour tout envoi de mail, un système UNIX tentera de faire appel à la commande sendmail (ceci pour une raison historique). La commande sendmail peut être founie par l’utilitaire sendmail, postfix, ou dans notre cas, par ssmtp.

     
    1
    whereis sendmail

    Si vous obtenez un retour semblable à l’exemple ci-dessous, c’est que la commande sendmail se trouve sur votre sytème.

     
    1
    sendmail: /usr/sbin/sendmail /usr/lib/sendmail /usr/lib64/sendmail /usr/share/man/man8/sendmail.8.gz

    Il faut maintenant vérifier que ssmtp est l’utilitaire qui se cache derrière cette commande :

     
    1
    ls -la /usr/sbin/sendmail

    La réponse attendue :

     
    1
    lrwxrwxrwx 1 root root 5 20 déc.   2010 /usr/sbin/sendmail -> ssmtp*

    Ici, l’on voit que lors d’un appel à sendmail, le sytème appellera en fait le client ssmtp au travers d’un lien symbolique.

    Configuration de ssmtp

     

     
    1
    vim /etc/ssmtp/ssmtp.conf

    Afin d’être le plus clair possible, je vous place ici la configuration de mon serveur ( hébergé chez Ikoula). À vous de l’adapter avec les informations de votre prestataire.

     
     
    # 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.ikoula.fr
     
    # Where will the mail seem to come from?
    #rewriteDomain=
     
    # The full hostname
     
    hostname=ik34.ikoula.com
     
    # 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

    Le point à noter est que l’utilisation du SMTP de votre prestataire ne semble pas requérir d’authentification. Ne vous y trompez pas, l’envoi vous est autorisé, car effectué depuis une de leur machine, c’est pourquoi il vous serait impossible d’utiliser leur serveur SMTP depuis une machine située à l’extérieur du réseau sans vous identifier au préalable.

    À ce stade, testez de nouveau l’envoi de mail grâce à la commande donnée en début de ce chapitre. Si vous obtenez une erreur, passez à la section suivante.

    Un cas particulier, l’envoi de mail depuis root

    Vous l’aurez compris, l’envoi de mail jusque ici se fait en tant que root. Chez certains prestataires, il est possible que l’envoi depuis root soit refusé.

    Un exemple de refus :

     
     
    send-mail: RCPT TO:<parisi.robin@gmail.com> (554 5.7.1 <root@ik34.ikoula.com>: Sender address rejected: Access denied)

    Nous allons pour cela ruser en modifiant l’adresse d’expédition du compte root.

     
    1
    vim /etc/ssmtp/revaliases

    Je rajoute alors la ligne suivante :

     
    1
    root:homer@mail.ikoula.com

    Notez que l’utilisateur n’a aucunement besoin d’exister sur votre serveur. En clair, vous pouvez mettre  à peu près n’importe quoi (cette donnée sera utilisée pour le champ from), cela pour la simple et bonne raison que nous n’attendons aucune réponse aux mails qui seront envoyés. De l’envoi et simplement de l’envoi, souvenez-vous !

    À partir de ce point, les futurs paquets que vous installerez devraient être capables d’envoyer des mails s’ils sont lancés avec les privilèges du compte root. N’hésitez pas non plus à utiliser la commande mail au sein de vos scripts, pour être averti par exemple de la bonne exécution d’une tâche.

    Méthode exim4 (pas de SMTP chez votre prestataire)

    Dans ce cas, nous allons utiliser un compte mail qui nous permettra de gérer l’envoi. Deux solutions s’offrent à vous :

    En ce qui me concerne, j’ai pris l’habitude de créer une adresse dédiée à l’envoi de mail depuis le serveur du type ne-pas-repondre@mondomaine.fr.

    Je vous laisse vous renseigner sur la façon de créer une boîte mail avec votre domaine.

    Nous allons maintenant configurer exim4 pour envoyer les mails en passant par votre compte :

     
     
    vim /etc/exim4/update-exim4.conf.conf

    À adapter selon vos informations de connexion :

     
     
    dc_eximconfig_configtype='satellite'
    dc_other_hostnames=''
    dc_local_interfaces='127.0.0.1'
    dc_readhost='mon-domaine.com'
    dc_relay_domains=''
    dc_minimaldns='false'
    dc_relay_nets=''
    dc_smarthost='mail.gandi.net:587'
    CFILEMODE='644'
    dc_use_split_config='false'
    dc_hide_mailname='true'
    dc_mailname_in_oh='true'
    dc_localdelivery='mail_spool'

    Dans mon cas, je passe par le SMTP de Gandi (mail.gandi.net sur le port 587). Il vous faudra donc trouver ces informations pour votre prestataire.

    Dans /etc/exim4/passwd.client

     
    1
    *:NOM-UTILISATEUR@DOMAINE.FR:MOT-DE-PASSE-DU-COMPTE

    Cette ligne nous permet de nous identifier avec notre compte auprès du serveur SMTP.

    Puis l’on termine en rechargeant la configuration d’exim4 :

     
    1
    update-exim4.conf

    Arrivé à ce point, vous devriez être capable d’envoyer des mails grâce à la commande utilisée plus haut.

    Limites d’envoi

    Il est important de comprendre que ces techniques permettent un envoi de mail “modéré” depuis la ligne de commande (ou depuis un script PHP, Python, Ruby, etc…). Au-delà d’un certain quota, le SMTP refusera de transmettre vos emails. Pour de l’envoi de masse (newsletter) et pour éviter de finir dans les spams, préférez une solution spécialisée (Mailchimp propose par exemple l’envoi de newsletter gratuitement jusqu’à 2000 inscrits).

    • le prestataire dispose d’un STMP en interne pour l’envoi de mail depuis ses serveurs (parfois, la distribution est préconfigurée pour utiliser ce SMTP (ex: Ikoula)
    • le prestataire ne dispose pas d’un SMTP en interne (ex: Dedibox). Dans ce cas, nous allons utiliser un autre relai SMTP
    • utiliser un compte type gmail, outlook, etc…
    • créer un compte mail chez votre prestataire de nom de domaine
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

 Share

×
×
  • Créer...