Accueil > Informatique > Comment envoyer un message avec Postfix sur un serveur externe SMTP avec authentification

Comment envoyer un message avec Postfix sur un serveur externe SMTP avec authentification

Le contexte :

Sur votre ordinateur, certains programmes envoient automatiquement des mails vers une adresse donnée suite à leur exécution. Cela peut être par exemple des tâches exécutées par cron telles que logwatch (résumé des évènements systèmes qui se sont produits sur votre ordinateur), des scripts de sauvegarde…
De plus ces mails sont destinés à une adresse externe (donc non locale à votre système) et qu’en plus l’envoi se fait via différents fournisseurs d’accès à Internet. Ce cas se produit notamment si vous avez un ordinateur portable et que vous connectez de différents endroits.

Le problème :

Pour éviter que votre mail ne soit bloqué en étant considéré comme du spam, il vaut mieux spécifier dans votre MTA (Mail Transfert Agent, qui vous permet d’envoyer ces mails) le SMTP du fournisseur d’accès avec lequel vous vous connectez à Internet. Evidemment, si vous changez de lieu, il faut reconfigurer votre MTA en mettant le SMTP du fournisseur correspondant… ce qui n’est pas très pratique.

La solution :

Pour s’affranchir de cette contrainte, le mieux est d’utiliser un serveur SMTP authentifié. Vous pouvez utiliser celui que vous avez paramétré dans votre lecteur de mail pour envoyer vos courriers.

Il existe de nombreux MTA (Sendmail, Exim…) et Postfix. Je vais ici vous présenter la solution (très simple) en utilisant ce dernier.
Evidemment le prérequis est de l’avoir installé. Cela se fait très simplement avec votre distribution préférée en utilisant le gestionnaire de paquets.

Regardons maintenant comment paramétrer le serveur SMTP externe avec authentification.

– Créer un fichier /etc/postfix/sasl/sasl_passwd qui contiendra le login et le mot de passe que vous utilisez :

smtp_de_mon_fournisseur utilisateur:mot_de_passe

Remplacez évidemment ces valeurs par les votres (par example smtp.mirelsol.org marc:motDePasseSecret).

– Ensuite en ligne de commande :

postmap /etc/postfix/sasl/sasl_passwd

– Editer ensuite le fichier /etc/postfix/main.cf et ajouter :

relayhost = smtp_de_mon_fournisseur
# Sasl client
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_security_options =
smtp_sasl_exceptions_networks = $mynetworks

– Ensuite relancer postfix et nettoyer (ce n’est pas la peine de laisser trainer votre mot de passe en clair, hein !)

/etc/init.d/postfix restart
rm /etc/postfix/sasl/sasl_passwd

Une autre solution est décrite dans ce billet.

Categories: Informatique Tags: .: mail .: postfix .: smtp
  1. Pas encore de commentaire
  1. Pas encore de trackbacks