Hôte de sous-domaines génériques à l'aide de postfix

9

J'essaie de trouver comment obtenir que postfix accepte les e-mails pour n'importe quel sous-domaine de mon site principal. Je n'ai pas de domaines virtuels, juste une longue liste de sous-domaines pour la livraison locale. En particulier, j'alimente python@*.mydomain.comun Python en utilisant le fichier d'alias:

python:    |/www/proc_email.py

Le Python peut gérer la livraison à partir de là. J'imagine que cela ressemble à quelque chose comme:

mydestination = encendio, localhost.localdomain, localhost, *.mydomain.com

J'utilise la dernière version de postfix sur Ubuntu (je ne sais pas à juste titre comment vérifier la version).

Merci d'avance.

Jack M.
la source

Réponses:

19

Vous ne pouvez pas utiliser de caractères génériques si vous répertoriez explicitement les destinations dans votre configuration Postfix, mais heureusement, l' $mydestinationoption accepte les recherches de table. Essayez donc de définir $mydestinationune carte pcre comme celle-ci:

mydestination = pcre:/etc/postfix/mydestinations

Créez ensuite /etc/postfix/mydestinationsavec des expressions rationnelles correctement ancrées et échappées:

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.example$/     ACCEPT

Techniquement, vous pouvez mettre n'importe quoi à la place de "ACCEPTER" car le résultat est ignoré; juste la présence du match suffit :

Spécifiez une liste de noms d'hôte ou de domaine, des modèles "/ fichier / nom" ou "type: table", séparés par des virgules et / ou des espaces. Un modèle "/ fichier / nom" est remplacé par son contenu; une table de recherche "type: table" est mise en correspondance lorsqu'un nom correspond à une clé de recherche (le résultat de la recherche est ignoré).

Insyte
la source
2
Les expressions régulières doivent être achored; voir serverfault.com/a/352928/84843
Richard Hansen
19

La solution pcre dans la réponse acceptée fonctionne bien, mais vous voudrez peut-être envisager d'ancrer l'expression rationnelle pour éviter d'obtenir des hits sur une partie du nom de domaine.

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.com$/         ACCEPT
gldr
la source
0

*.mydomain.com ne fonctionnera pas.

Vous devez créer relay-domainset mettre tous vos sous-domaines dedans. 1 par ligne.

solefald
la source