13

I'm trying to work out how I can get postfix to accept email for any sub-domain of my main site. I don't have virtual domains, just a long list of sub-domains for local delivery. In specific, I'm feeding python@*.mydomain.com into a Python using the alias file:

python:    |/www/proc_email.py

The Python can handle delivery from there. I envision this looking something along the lines of:

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

I'm running the latest version of postfix on Ubuntu (not rightly sure how to check the version).

Thanks in advance.

3 Answers 3

21

You can't use wildcards if you explicitly list the destinations in your Postfix config, but fortunately the $mydestination option accepts table lookups. So try setting $mydestination to a pcre map like this:

mydestination = pcre:/etc/postfix/mydestinations

Then create /etc/postfix/mydestinations with properly anchored and escaped regexps:

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

Technically you could put anything at all in the place of "ACCEPT" as the result is ignored; just the presence of the match is sufficient:

Specify a list of host or domain names, "/file/name" or "type:table" patterns, separated by commas and/or whitespace. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a name matches a lookup key (the lookup result is ignored).

1
20

The pcre solution in the accepted answer works well, but you might want to consider anchoring the regexp to avoid getting hits on just part of the domain name.

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

*.mydomain.com wont work.

You need to create relay-domains and put all your subdomains in there. 1 per line.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .