Ich glaube, ich habe jeden Thread mit „Catch All“ und „Overrides Catch All“ mit Postfix überprüft, kann aber trotzdem keine Lösung für mein Problem finden. Ich habe einen eingehenden (nur) SMTP-Server Postfix version 3.5.8
. Ich möchte ihn zu einem offenen Relay machen und kann das mit virtual_alias_domains=static:yes
in erreichen /etc/postfix/main.cf
. Dann möchte ich diese Nachrichten je nach Empfängerdomäne an einige Benutzer versenden, also habe ich einige Muster mit pcre in erstellt virtual_alias_maps = pcre:/etc/postfix/virtual
:
/1@test/ test
/2@test/ test2
/@test/ catchallfromtest
/@/ catchall
mit/etc/postfix/aliases
test: "/var/mail/test.mail"
test2: "/var/mail/test2.mail"
catchallfromtest: "/var/mail/catchallfromtest.mail"
catchall: "/var/mail/catchall.mail"
Wenn ich auskommentiere, /@/ catchall
wird die E-Mail korrekt versendet, aber ohne das geht jede E-Mail in den Catchall. Ich habe viele Ideen ausprobiert (andere Reihenfolge, Aufteilung in separate Dateien, mit verschiedenen Datenbanktypen, mit virtual_alias_map
für einige Benutzer und mit recipient_bcc_maps für den Catchall, mit, luser_relay
aber es funktioniert nur für, $mydomain
also funktioniert es in meinem Fall nicht, mit Ausschluss im Muster und in Zeile ( !//
)) und mit unterschiedlicher Form des Catchalls ( //
, /.*@.*/
, /^.*@.*&/
, /.+@.+/
usw.). Wenn ich versuche, es mit zu testen
postmap -q "1@test" pcre:/etc/postfix/virtual
es gibt den korrekten Alias zurück, aber wenn ich versuche, eine E-Mail zu senden, geht es in den Catchall. Was kann ich sonst noch versuchen? Aus [Dokumentation][1]
Patterns are applied in the order as specified in the table, until a pattern is found that matches the input string.
Es sollte also direkt nach der ersten Musterübereinstimmung anhalten, tut dies aber nicht. [1]:http://www.postfix.org/pcre_table.5.html