Postfix + Maildrop Howto


Introduction

Ce document présente différentes façons d'utiliser l'agent de livraison maildrop dans Postfix :

Livraison directe sans utiliser l'agent local de livraison

Postfix peut être configuré pour livrer le courrier directement à maildrop sans utiliser l'agent de livraison local(8) comme intermediaire. Ceci signifie que vous n'aurez pas les substitutions des alias locaux ou le traitement des fichiers $HOME/.forward. Vous pourrez typiquement utiliser pour les domaines hébergés avec des destinataires qui n'ont pas de répertoires individuels UNIX ($HOME).

Les exemples suivants montrent comment utiliser maildrop pour un.domaine et pour un.autre.domaine.

 1 /etc/postfix/main.cf:
 2     maildrop_destination_recipient_limit = 1
 3     virtual_mailbox_domains = un.domaine un.autre.domaine
 4     virtual_transport = maildrop
 5     virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox
 6     virtual_alias_maps = hash:/etc/postfix/virtual_alias
 7 
 8 /etc/postfix/virtual_mailbox:
 9     user1@un.domaine        ...texte inutilisé ici...
10     user2@un.domaine        ...texte inutilisé ici...
11     user3@un.autre.domaine   ...texte inutilisé ici...
12 
13 /etc/postfix/virtual_alias:
14     postmaster@un.domaine           postmaster
15     postmaster@un.autre.domaine      postmaster

L'UID vmail utilisé ci-dessous est le compte sous lequel doit être lancé maildrop. Il doit être le propriétaire des boîtes-aux-lettres virtuelles si elles ont le même propriétaire. Si maildrop a le bit suid (voir la documentation de maildrop), alors maildrop changera automatiquement de compte pour livrer le courrier.

Note : N'utilisez pas l'utilisateur postfix pour maildrop.

/etc/postfix/master.cf:
    maildrop  unix  -       n       n       -       -       pipe
      flags=DRhu user=vmail argv=/path/to/maildrop -d ${recipient}

Si vous voulez supporter les adresses du style user+extension@domain, utilisez ce qui suit à la place :

/etc/postfix/master.cf:
    maildrop  unix  -       n       n       -       -       pipe
      flags=DRhu user=vmail argv=/path/to/maildrop 
      -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop}

Le courrier est livré à ${user}@${nexthop} (clef correspondant pour la recherche dans la base des utilisateurs maildrop). L'${extension} et les autres composants sont disponibles pour les règles maildrop sous $1, $2, $3, ... et peut être ommit dans master.cf ou ignoré par maildrop s'ils ne sont pas utilisés.

Livraison indirecte via l'agent local de livraison

Postfix peut être configuré pour livrer le courrier à maildrop via l'agent local de livraison. Ceci est légèrement moins efficace que l'approche "directe" décrite ci-dessus, mais présente l'intérêt des substitutions d'alias locaux et de l'exploitation des fichiers $HOME/.forward. Vous pourrez typiquement l'utiliser pour les domaines listés dans mydestination et qui n'ont pas de compte du système UNIX.

Pour configurer la livraison maildrop pour tous les comptes du système UNIX :

/etc/postfix/main.cf:
    mailbox_command = /path/to/maildrop -d ${USER}

Note : ${USER} est épelé en majuscules.

Pour activer la livraison maildrop pour certains utilisateurs seulement, vous pouvez utiliser la fonctionnalité mailbox_command_maps de l'agent local(8) de livraison :

/etc/postfix/main.cf:
    mailbox_command_maps = /etc/postfix/mailbox_commands

/etc/postfix/mailbox_commands:
    vous    /path/to/maildrop -d ${USER}

La livraison maildrop pour certains utilisateurs est également possible en l'invoquant depuis les fichiers $HOME/.forward :

/home/vous/.forward:
    "|/path/to/maildrop -d ${USER}"

Références

Valid HTML 4.01! traduction par Xavier Guimard - Retour au menu