29.3. Configuration de sendmail
Précédent | Chapitre 29. Courrier électronique | Suivant

## 29.3. Configuration de sendmail

Contribution de Christopher Shumway.

sendmail(8) est l'agent de transfert de courrier (Mail Transfert Agent—MTA) par défaut sous FreeBSD. Le rôle de sendmail est d'accepter le courrier en provenance des agents de courrier utilisateur (Mail User Agents—MUA) et de délivrer le courrier aux programmes de gestion du courrier définis dans son fichier de configuration. sendmail peut également accepter les connexions réseau et délivrer le courrier dans des boîtes aux lettres locales ou le transmettre à un autre programme.

sendmail utilise les fichiers de configuration suivants:

Fichier | Fonction
--- | ---
`/etc/mail/access` | Fichier de la base de données d'accès de sendmail
`/etc/mail/aliases` | Alias de boîte aux lettres
`/etc/mail/local-host-names` | Liste des machines pour lesquelles sendmail accepte du courrier
`/etc/mail/mailer.conf` | Configuration du programme de gestion du courrier
`/etc/mail/mailertable` | Table de livraison du courrier
`/etc/mail/sendmail.cf` | Fichier de configuration principal de sendmail
`/etc/mail/virtusertable` | Table des domaines et utilisateurs virtuels

### 29.3.1. `/etc/mail/access`

La base de données d'accès définit quelle(s) machine(s) ou adresses IP ont accès au serveur de courrier local et quel type d'accès ils ont. Les machines peuvent être listées avec `OK`, `REJECT`, `RELAY` ou simplement transférées à la routine de gestion des erreurs sendmail avec une erreur donnée. Les machines qui sont listées avec `OK`, qui est le comportement par défaut, sont autorisées à envoyer du courrier à cette machine dès que la destination finale du courrier est la machine locale. Les machines listées avec `REJECT` se verront rejeter pour toute connexion au serveur. Les machines présentes avec l'option `RELAY` sont autorisées à envoyer du courrier à n'importe quelle destination par l'intermédiaire de ce serveur de courrier.

Exemple 29.1. Configuration de la base de données d'accès de sendmail

    cyberspammer.com                550 We don't accept mail from spammers
    FREE.STEALTH.MAILER@            550 We don't accept mail from spammers
    another.source.of.spam          REJECT
    okay.cyberspammer.com           OK
    128.32                          RELAY

Dans cet exemple nous avons cinq entrées. Les émetteurs de courrier qui correspondent à la partie gauche de la table sont affectés par l'action donnée sur la partie droite de la table. Les deux premiers exemples donnent un code d'erreur à la routine de gestion d'erreur de sendmail. Le message est affiché sur la machine distante quand un courrier électronique correspond à la partie gauche de la table. L'entrée suivante rejette le courrier en provenance d'une machine précise de l'Internet, `another.source.of.spam`. L'entrée suivante accepte les connexions à partir de la machine `okay.cyberspammer.com`, qui est plus précis que le `cyberspammer.com` de la ligne précédente. Les correspondances plus spécifiques priment sur les moins précises. La dernière entrée autorise le relais du courrier électronique en provenance de machines avec une adresse IP qui commence par `128.32`. Ces machines seront en mesure d'envoyer du courrier destiné à d'autres serveurs de courrier par l'intermédiaire de ce serveur de courrier.

Quand ce fichier est mis à jour, vous devez exécuter la commande `make` dans `/etc/mail/` pour mettre à jour la base de données.

### 29.3.2. `/etc/mail/aliases`

La base de données d'alias contient une liste de boîtes aux lettres virtuelles dont le contenu sera transmis à d'autres utilisateurs, fichiers, programmes ou d'autres alias. Voici quelques exemples qui peuvent être utilisés dans `/etc/mail/aliases`:

Exemple 29.2. Exemple de base de données d'alias

    root: localuser
    ftp-bugs: joe,eric,paul
    bit.bucket:  /dev/null
    procmail: "|/usr/local/bin/procmail"

Le format du fichier est simple; le nom de la boîte aux lettres à gauche et la cible sur la droite. Le premier exemple transfère la boîte aux lettres `root` vers la boîte aux lettres `localuser`, qui est ensuite recherchée dans la base de données d'alias. Si aucune correspondance n'est trouvée alors le message est délivré à l'utilisateur locale `localuser`. L'exemple suivant montre une liste de correspondance. Un courrier envoyé à la boîte aux lettres `ftp-bugs` sera délivré aux trois boites locales `joe`, `eric`, et `paul`. Notez qu'une boîte aux lettres distante comme `user@exemple.com`/procmail pourra être spécifiée. L'exemple suivant montre comment transférer le courrier dans un fichier, dans notre cas `/dev/null`. Le dernier exemple montre l'envoi du courrier à un programme, dans le cas présent le message est écrit sur l'entrée standard de `/usr/local/bin/procmail` par l'intermédiaire d'un tube UNIX®.

Quand ce fichier est mis à jour, vous devez exécuter la commande `make` dans `/etc/mail/` pour mettre à jour la base de données.

### 29.3.3. `/etc/mail/local-host-names`

C'est la liste des machines pour lesquelles sendmail(8) accepte du courrier comme s'il était destiné à la machine locale. Placez-y tous les domaines ou machines pour lesquels sendmail doit recevoir du courrier. Par exemple, si le serveur de courrier devait accepter du courrier pour le domaine `exemple.com` et la machine `mail.exemple.com`, sont `local-host-names` ressemblera à quelque chose comme ceci:

    exemple.com
    mail.exemple.com

Quand ce fichier est mis à jour, sendmail(8) doit être relancé pour lire les changements.

### 29.3.4. `/etc/mail/sendmail.cf`

Fichier principal de configuration de sendmail, `sendmail.cf` contrôle le comportement général de sendmail, y compris tout depuis la réécriture des adresses de courrier jusqu'à l'envoi de message de rejet aux serveurs de courrier distants. Naturellement, avec tant de différentes activités, ce fichier de configuration est relativement complexe et son étude détaillée n'est pas le but de cette section. Heureusement, ce fichier a rarement besoin d'être modifié pour les serveurs de courrier standards.

Le fichier de configuration principal de sendmail peut être créé à partir de macros m4(1) qui définissent les fonctions et le comportement de sendmail. Veuillez consulter `/usr/src/contrib/sendmail/cf/README` pour plus de détails.

Quand des modifications à ce fichier sont apportées, sendmail doit être redémarré pour que les changements prennent effet.

### 29.3.5. `/etc/mail/virtusertable`

La table `virtusertable` fait correspondre les adresses de courrier électronique pour des domaines virtuels et les boîtes aux lettres avec des boîtes aux lettres réelles. Ces boîtes aux lettres peuvent être locales, distantes, des alias définis dans `/etc/mail/aliases` ou des fichiers.

Exemple 29.3. Exemple de correspondance de domaine virtuel de courrier

    root@exemple.com                root
    postmaster@exemple.com          postmaster@noc.exemple.net
    @exemple.com                    joe

Dans l'exemple ci-dessus, nous avons une correspondance pour un domaine `exemple.com`. Ce fichier est traité jusqu'à trouver la première correspondance. Le premier élément fait correspondre `root@exemple.com` à la boîte aux lettres root locale. L'entrée suivante fait correspondre `postmaster@exemple.com` à la boîte aux lettres postmaster sur la machine `noc.exemple.net`. Et enfin, si un courrier en provenance de `exemple.com` n'a pas trouvé de correspondance, il correspondra à la dernière ligne, qui régira tous les autres messages adressés à quelqu'un du domaine `exemple.com`. La correspondance sera la boîte aux lettres locale `joe`.

Précédent | Niveau supérieur | Suivant
29.2. Utilisation du courrier électronique | Sommaire | 29.4. Changer votre agent de transfert de courrier

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.