Activer plusieurs comptes mail et une adresse « catchall » dans Postfix

Par @Quack1 dans le
Tags : #Linux, #MTA, #Postfix, #Mail, #planet-libre,
Partagez cet article! ~ Google+ ~ ~ Linkedin ~ Mail
Flattr this

Sur mon serveur de mail Postfix, j'ai plusieurs utilisateurs configurés qui peuvent recevoir et envoyer des mails. Certaines adresses sont « virtuelles » et sont en réalité des alias vers d'autres adresses. Rajouter un « catchall » sur mon domaine signifie perdre mes différents utilisateurs. Mais une solution existe.

Mon serveur postfix autorise l'envoi de mails à des adresses de la forme <LOGIN>@quack1.me<LOGIN> étant un nom d'utilisateur sur le système.

Parfois, j'ai voulu que les mails adressés à des adresses différentes arrivent dans la mailbox d'un seul utilisateur. J'ai utilisé le principe des alias (en les renseignant dans le fichier /etc/aliases).

Ensuite, pour ne pas perdre de mails envoyés à des adresses inconnues de mon système, j'ai rajouté un système de « catchall » à mon Postfix.

La configuration de base que j'ai trouvé sur Internet consistait à dire à Postfix de relayer tous les mails reçus à une seule adresse. Le problème c'est que du coup, même les mails envoyés aux utilisateurs connus du système sont envoyés à mon catchall.

J'ai fouillé un peu plus, et j'ai trouvé une troisième solution (qui elle me convient).

On n'utilise plus que le fichier /etc/postfix/virtual pour définir les utilisateurs (réels et les alias) et pour le catchall.

Première modification, dans le fichier de configuration /etc/postfix/main.cf :

#alias_maps = hash:/etc/aliases
#alias_database = hash:/etc/aliases
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_domains =

Dans le fichier /etc/postfix/virtual, je défini 3 choses :

  1. Les « vrais » adresses, ceux qui ont un compte sur le système ;
  2. Les alias, et à quel compte les courriers sont redirigés ;
  3. Le catchall.

Les deux premiers cas sont identiques en pratique. Je note, sur chaque ligne du fichier, l'adresse à qui le mail est destiné, et à droite le nom du compte qui va recevoir l'adresse.

# "Real" addresses
user@domain.com         user
girlfriend@domain.com   girlfriend

# Aliases
root@domain.com         admin+root
contact@domain.com  root

Notes pour ce point : Les adresses définies dans la première colonne sont les adresses de base de remise des mails, donc les délimiteurs (comme le '+' fonctionnent). Si j'envoie un courriel à root+blog@domain.com, il sera délivré à admin+root. De plus, on peut définir dans la deuxième colonne un alias comme adresse de réception du message.

Enfin, pour gérer le catchall, on rajoute une ligne en bas du fichier.

#################################
#  Catch-All
#################################
@domain.com              catchall

Tous les mails envoyés à domain.com, et qui n'auront pas été transmis à partir de la liste des comptes définis plus haut, seront remis dans la mailbox de catchall.

 

Pour appliquer la configuration, on relance Postfix.

# postmap /etc/postfix/virtual
# service postfix reload

Voilà, il y a peut être des solutions plus propres pour le faire, mais celle-ci fonctionne et elle est assez simple à mettre en place! 😃

Cet article est libre et diffusé sous une licence Creative Commons CC-BY-NC. Vous pouvez rémunérer son auteur en utilisant le système Flattr :
Flattr this

Comments !