Hostuj poddomeny z symbolami wieloznacznymi za pomocą Postfiksa


9

Próbuję ustalić, w jaki sposób mogę uzyskać postfiks, aby akceptował pocztę e-mail dla dowolnej subdomeny mojej głównej witryny. Nie mam domen wirtualnych, tylko długą listę subdomen do lokalnego dostarczania. W szczególności karmię python@*.mydomain.comsię w Pythonie za pomocą pliku aliasu:

python:    |/www/proc_email.py

Python może obsługiwać dostarczanie stamtąd. Widzę, że to wygląda podobnie do:

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

Korzystam z najnowszej wersji Postfix na Ubuntu (nie jestem pewien, jak sprawdzić wersję).

Z góry dziękuję.

Odpowiedzi:


19

Nie możesz używać symboli wieloznacznych, jeśli jawnie podajesz listę miejsc docelowych w konfiguracji Postfix, ale na szczęście $mydestinationopcja akceptuje wyszukiwanie tabel. Więc spróbuj ustawić $mydestinationna mapie pcre tak:

mydestination = pcre:/etc/postfix/mydestinations

Następnie utwórz /etc/postfix/mydestinationsz odpowiednio zakotwiczonymi i unikniętymi wyrażeniami regularnymi:

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

Technicznie rzecz biorąc, możesz w ogóle cokolwiek zastąpić „AKCEPTUJĄ”, ponieważ wynik jest ignorowany; wystarczy obecność meczu :

Podaj listę nazw hostów lub domen, wzorców „/ file / name” lub „type: table”, oddzielając je przecinkami i / lub białymi znakami. Wzorzec „/ file / name” zostaje zastąpiony jego zawartością; tabela wyszukiwania „type: table” jest dopasowywana, gdy nazwa pasuje do klucza wyszukiwania (wynik wyszukiwania jest ignorowany).


2
Wyrażenia regularne powinny być osiągnięte; patrz serverfault.com/a/352928/84843
Richard Hansen

19

Rozwiązanie pcre w zaakceptowanej odpowiedzi działa dobrze, ale możesz rozważyć zakotwiczenie wyrażenia regularnego, aby uniknąć trafień tylko części nazwy domeny.

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

0

*.mydomain.com nie zadziała.

Musisz utworzyć relay-domainsi umieścić tam wszystkie swoje subdomeny. 1 na linię.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.