Postfix: que sont exactement les domaines d'alias?

12

Je pensais avoir compris les "domaines d'alias" comme étant simplement un alias pour un autre domaine! Ainsi, lorsque je configure une boîte aux lettres comme "[email protected]" et que j'ajoute "alias.com" comme alias de domaine pour "main.com", l'adresse "[email protected]" fonctionnerait également ... Mais non !

J'ai donc ajouté ces domaines:

  • main.com
  • alias.com

J'ai créé cette boîte aux lettres:

Ensuite, j'ai mappé ces domaines d'alias:

  • alias.com => main.com

Et puis quand j'envoie un mail à [email protected] je reçois cette erreur:

Recipient address rejected: User unknown in virtual mailbox table (state 13).

Je ne veux pas créer d'alias pour chaque domaine, car j'en ai quelques-uns. Je ne veux pas non plus utiliser de caractère générique (comme info @ *) car il existe également d'autres domaines qui ne sont pas des alias demain.com

Alors ... qu'est-ce que c'est exactement?

skerit
la source
Je m'attendais à la même chose et je ne comprends toujours pas pourquoi ce n'est pas le cas.
Josh M.

Réponses:

4

L'explication se trouve dans la documentation: http://www.postfix.org/VIRTUAL_README.html#virtual_alias

Vous voulez des "boîtes aux lettres d'alias" aka virtual_mailbox_alias et virtual_mailbox_maps mais parlez de "domaines d'alias": http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class

mailq
la source
3
Je n'arrive pas à comprendre les documents - comment avez-vous un domain1.comalias pour une boîte aux lettres <mailbox>@domain2.com?
Josh M.
2
@JoshM. Vous pouvez utiliser une table de hachage virtual_alias_mapsavec une entrée du formulaire @domain1.com @domain2.com. Voir ma réponse pour plus de détails.
Sam Hanes
12

L'ajout alias.comà virtual_alias_domainsest la première étape correcte, mais cela indique simplement à Postfix que vous souhaitez utiliser ce domaine pour les alias. Il ne dit pas quels devraient être les alias. Pour cela, vous devez utiliser une carte d'alias virtuelle.

Tout d'abord, ajoutez quelque chose comme ceci à main.cf:

virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual

L'ajout virtual_alias_mapsvous donne un fichier ( /etc/postfix/virtual) qui est utilisé comme une carte d'alias virtuelle. Mais que mettez-vous dans ce dossier? Selon la page de manuel virtuelle (5) :

Le format d'entrée de la commande postmap (1) est le suivant:

  pattern address, address, ...

Lorsque le modèle correspond à une adresse e-mail, remplacez-le par l'adresse correspondante.

et

Avec les recherches à partir de fichiers indexés tels que DB ou DBM, ou à partir de tables en réseau telles que NIS, LDAP ou SQL, chaque requête utilisateur @ domaine produit une séquence de modèles de requête comme décrit ci-dessous. Chaque modèle de requête est envoyé à chaque table de recherche spécifiée avant d'essayer le modèle de requête suivant, jusqu'à ce qu'une correspondance soit trouvée.

...

@domain address, address, ...

Redirigez le courrier des autres utilisateurs du domaine vers l'adresse.

et

Le résultat de la recherche est soumis à la réécriture d'adresse: lorsque le résultat a le formulaire @otherdomain, le résultat devient le même utilisateur dans otherdomain. Cela ne fonctionne que pour la première adresse d'un résultat de recherche à plusieurs adresses.

Par conséquent, la mise en place /etc/postfix/virtualpermettra d'obtenir l'alias de domaine complet que vous souhaitez:

# map any <user>@alias.com to the matching <user>@main.com
@alias.com     @main.com

Puis, comme ce fichier est une table de hachage, vous devez exécuter postmap( explication , page de manuel ):

postmap /etc/postfix/virtual

Vous pouvez trouver plus d'informations sur les domaines virtuels dans le HOWTO du domaine virtuel Postfix et sur les alias dans le HOWTO de la réécriture d'adresses Postfix .

Sam Hanes
la source
Ainsi, l'interface PostfixAdmin a un bogue , car l'interface ( edit.php?table=aliasdomain) ne parvient pas à dire à l'utilisateur qu'aucun alias ne se produira en fait lors du marquage comme activé.
Peter Krauss
2
Je ne dirais pas que c'est un bug, exactement, car il configure en fait un domaine d'alias virtuel. Au contraire, je soupçonne que PostfixAdmin s'attend à ce que vous sachiez ce que sont les domaines d'alias virtuels Postfix, et que vous devez également ajouter des alias réels afin de leur faire faire quoi que ce soit. Il serait probablement préférable que cela vous le dise.
Sam Hanes
1

@Josh M.

Je ne sais pas si c'est la bonne voie et / ou la bonne pratique mais j'utilise quelque chose comme ça:

virtual_alias_maps = regexp:/etc/postfix/domain_rewriting pgsql:/etc/postfix/pgsql/     virtual_alias_maps.cf

$ cat /etc/postfix/domain_rewriting 
/^(.*)@domain1.com$/     ${1}@domain2.com
Maximilian Kaul
la source
1
Bien qu'il ne soit pas exactement incorrect (il fera ce que vous attendez), l'utilisation d'une table regex est moins efficace que l'utilisation d'une table de hachage avec la @domain1.com @domain2.comsyntaxe que j'ai détaillée dans ma réponse.
Sam Hanes
1

Ceci est ma version courte de la réponse de @ sam-hanes (qui a fonctionné pour moi)

Dans vos virtual_alias_maps, ajoutez:

@from.domain <tab> @to.domain

Dans la ligne de commande, faites:

 postmap /path/to/yourvirtualalismapsfile

Dans votre fichier main.cf , ajoutez:

virtual_alias_domains : from.domain

virtual_alias_domains indique à postfix que toutes les adresses de boîte aux lettres sous forme de boîte aux [email protected] sont toutes des alias.

ychaouche
la source