K

- Base de connaissances

Accueil > Système > Linux > Commande Sendmail ou comment configurer exim4

Commande Sendmail ou comment configurer exim4

mercredi 23 juillet 2014, par webmestre

Introduction

Sous Debian ou Ubuntu, il existe une commande de base qui permet d’envoyer des courriels, cette commande est sendmail.

En tapant les 3 lignes suivantes, vous envoyez un mail au destinataire de votre choix :

sendmail mon_adresse@email.fr
ceci est un mail
.

Ou, ligne de commande suivante :

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

NB : Le point de la dernière ligne est important, c’est le point de terminaison de votre courriel.

Seulement voilà, ça ne marchera pas forcément du premier coup... Et, dans la très grande majeure partie des cas, vous êtes juste face à un problème de paramétrage de votre MTA.

Définition d’un MTA... Pour comprendre ce que nous allons faire !

Un Mail Transfer Agent (MTA) est un logiciel de transmission de courriers électroniques. Son fonctionnement est de recevoir, habituellement par le protocole SMTP, les emails envoyés soit par des clients de messagerie électronique (MUA), soit par d’autres MTA. Et, son rôle est de distribuer ou redistribuer ces courriers à des Mail Delivery Agent et/ou d’autres MTA.

Dans notre cas, nous allons rendre capacitaire notre environnement à distribuer des courriels.

La commande sendmail

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 encore par ssmtp.

Si nous regardons de plus prêt la commande sendmail , on constate que c’est un lien symbolique vers exim4 (sous Debian ou Ubuntu).

En effet, si on tape la commande suivante :

whereis sendmail

On obtient le résultat suivant :

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

Et, en tapant la commande suivante :

ls -al /usr/sbin/sendmail

On obtient le résultat suivant :

/usr/sbin/sendmail -> exim4

Comme dit plus haut, ici, c’est l’utilitaire exim4 qui se cache derrière la commande sendmail .

Exemple de paramétrage pour le FREE

Pour configurer exim4 , il suffit de taper la commande suivante... et de suivre les instructions :

dpkg-reconfigure exim4-config

Donc, pour reprendre notre cas, nous souhaitons simplement envoyer des courriels. Et, si je suis chez FREE sur le réseau FREE.
Je vais sélectionner les options suivantes ou taper le texte sur les écrans successifs :
*- Ecran 1 : sélectionner "Envoi par relais (« smarthost ») — pas de courrier local"
*- Ecran 2 : taper "free.fr"
*- Ecran 3 : taper "127.0.0.1"
*- Ecran 4 : taper "localhost"
*- Ecran 5 : taper "free.fr"
*- Ecran 6 : taper "smtp.free.fr"
*- Ecran 7 : sélectionner "oui" (On minimise les requêtes DNS)
*- Ecran 8 : sélectionner "oui" ou "non"

Le fichier de configuration /etc/exim4/update-exim4.conf.conf est alors :

dc_eximconfig_configtype='satellite'
dc_other_hostnames='localhost'
dc_local_interfaces='127.0.0.1'
dc_readhost='free.fr'
dc_relay_domains=''
dc_minimaldns='true'
dc_relay_nets=''
dc_smarthost='smtp.free.fr'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

Et, si besoin d’un mot de passe, il est possible de le stocker dans le fichier : /etc/exim4/passwd.client
*:NOM-UTILISATEUR@DOMAINE.FR:MOT-DE-PASSE-DU-COMPTE

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

Exemple de paramétrage pour le OVH

Pour configurer exim4 , il suffit de taper la commande suivante... et de suivre les instructions :

dpkg-reconfigure exim4-config

Donc, pour reprendre notre cas, nous souhaitons simplement envoyer des courriels. Et, si je suis chez FREE sur le réseau FREE.
Je vais sélectionner les options suivantes ou taper le texte sur les écrans successifs :
*- Ecran 1 : sélectionner "Envoi par relais (« smarthost ») — pas de courrier local"
*- Ecran 2 : taper "nystek-editions.com"
*- Ecran 3 : taper "127.0.0.1 ; ::1"
*- Ecran 4 : taper le nom d’hôte de votre serveur
*- Ecran 5 : taper le nom d’hôte de votre serveur
*- Ecran 6 : taper "ssl0.ovh.net ::465"
*- Ecran 7 : sélectionner "oui" (On minimise les requêtes DNS)
*- Ecran 8 : sélectionner "oui" ou "non"

Le fichier de configuration /etc/exim4/update-exim4.conf.conf est alors :

dc_eximconfig_configtype='satellite'
dc_other_hostnames='le nom d'hôte de votre serveur'
dc_local_interfaces='
127.0.0.1 ; ::1'
dc_readhost='
le nom d'hôte de votre serveur'
dc_relay_domains=''
dc_minimaldns='true'
dc_relay_nets=''
dc_smarthost='ssl0.ovh.net::465'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

Ensuite, pour activer le mode SSL chez OVH, il faut modifier le paramétrage d’exim4, et plus particulièrement le fichier /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost, tel qu’il faut ajouter les deux lignes suivantes :

### transport/30_exim4-config_remote_smtp_smarthost
#################################
# This transport is used for delivering messages over SMTP connections
# to a smarthost. The local host tries to authenticate.
# This transport is used for smarthost and satellite configurations.
remote_smtp_smarthost:
  debug_print = "T: remote_smtp_smarthost for $local_part@$domain"
  driver = smtp
  protocol = smtps
  hosts_require_auth = ssl0.ovh.net
  hosts_try_auth = <; ${if exists{CONFDIR/passwd.client} \
        {\
        ${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$host_address}}\
        }\
        {} \
      }
.ifdef REMOTE_SMTP_SMARTHOST_HOSTS_AVOID_TLS
  hosts_avoid_tls = REMOTE_SMTP_SMARTHOST_HOSTS_AVOID_TLS
.endif
.ifdef REMOTE_SMTP_HEADERS_REWRITE
  headers_rewrite = REMOTE_SMTP_HEADERS_REWRITE
.endif
.ifdef REMOTE_SMTP_RETURN_PATH
  return_path = REMOTE_SMTP_RETURN_PATH
.endif
.ifdef REMOTE_SMTP_HELO_DATA
  helo_data=REMOTE_SMTP_HELO_DATA
.endif
.ifdef TLS_DH_MIN_BITS
tls_dh_min_bits = TLS_DH_MIN_BITS
.endif
.ifdef REMOTE_SMTP_SMARTHOST_TLS_CERTIFICATE
tls_certificate = REMOTE_SMTP_SMARTHOST_TLS_CERTIFICATE
.endif
.ifdef REMOTE_SMTP_SMARTHOST_PRIVATEKEY
tls_privatekey = REMOTE_SMTP_SMARTHOST_PRIVATEKEY
.endif

Les lignes à rajouter sont :

  protocol = smtps
  hosts_require_auth = ssl0.ovh.net

Ensuite, il est nécessaire de mettre en place le mot de passe associé au compte paramétré dans le fichier /etc/exim4/passwd.client  :
ssl0.ovh.net:<nom d'utilisateur>:<mot de passe>

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

Enfin, pour prendre en compte le nouveau paramétrage, il est nécessaire de taper les commandes suivantes :

update-exim4.conf
service exim4 restart

Fichiers de paramétrages d’exim4

Le fichier /etc/mailname contient votre_nom_de_domaine.fr entré lors de la configuration précédente.

Le fichier /etc/aliases contient les redirections de courriers des comptes utilisateurs du système.

Le fichier /etc/email-addresses contient les adresses mails "publiques" à utiliser pour les comptes utilisateurs du système, par exemple il est possible d’associer le compte root à une adresse particulière pour des envois de rapports :

root: <adresse de courriel>

Après toute modification manuelle de ces deux derniers fichiers, il est nécessaire d’exécuter la commande suivante pour prise en compte des nouvelles valeurs :

newaliases

Fichiers de journalisation

Le fichier de journalisation d’exim4 est /var/log/exim4/mainlog.

Répondre à cet article

Plan du site | Suivre la vie du site RSS 2.0 | powered by NYSTEK-EDITIONS and NYSTEK-CONSULTING