Im Grunde genommen möchte ich den „From:“-Header mithilfe von header_checks neu schreiben, aber nur, wenn die E-Mail an eine bestimmte Domäne geht.
Das Problem mit header_check besteht darin, dass ich nicht nach einer Kombination aus „An:“- und „Von:“-Headern suchen kann.
Jetzt habe ich mich gefragt, ob es möglich ist, die header_checks in Kombination mit smtpd_restriction_classes oder etwas Ähnlichem zu verwenden.
Ich habe beim Suchen im Internet viele Informationen zu Header-Checks und mehreren Header-Feldern gefunden. Alle sagten mir im Grunde, dass man zwei Header nicht für die Prüfung kombinieren kann. Aber ich habe keine Informationen darüber gefunden, ob es möglich ist, eine Header-Prüfung nur dann durchzuführen, wenn eine Bedingung (z. B. E-Mail geht an example.com) erfüllt ist.
Bearbeiten:
Bei weiteren Recherchen habe ich Folgendes gefundenArtikelDies schlägt vor, einen Dienst in Postfix master.cf hinzuzufügen, eine Transportkarte zu verwenden, um E-Mails für die Domäne an diesen Dienst weiterzuleiten, und eine separate Header-Prüfung mit -o zu definieren.
Die Sache ist, dass ich es nicht zum Laufen bekomme ...
Was ich bisher getan habe, ist, den Dienst zur Datei master.cf hinzuzufügen:
example unix - - n - - smtpd
-o header_checks=regexp:/etc/postfix/check_headers_example
Hinzufügen der folgenden Zeile zur Transportkarte:
example.com example:
Zu guter Letzt habe ich zwei Regexp-Dateien für Header-Prüfungen, eine für den neu hinzugefügten Dienst und eine zum Umleiten von Antworten an die neu geschriebene Domäne.
check_headers_beispiel:
/From:(.*)@mydomain.ain>(.*)/ REPLACE From:[email protected]>$2
Wenn jemand antwortet, geht die E-Mail natürlich ins Nirvana, daher habe ich im Haupt-Postfix-Prozess die folgenden check_headers definiert:
/To:(.*)<(.*)@mydomain.example.com>(.*)/ REDIRECT [email protected]$2
Der Transport wird irgendwie ignoriert. Jede Hilfe ist willkommen.
Bearbeitung 2:
Ich stecke immer noch fest. Ich habe Folgendes versucht:
smtpd_restriction_classes = header_rewrite
header_rewrite = regexp:/etc/postfix/rewrite_headers_domain
smtpd_recipient_restrictions = (some checks) check_recipient_access hash:/etc/postfix/rewrite_table, (more checks)
Im rewrite_table
sind folgende Einträge vorhanden:
/From:(.*)@mydomain.ain>(.*)/ REPLACE From:[email protected]>$2
Ich bekomme nur ein NOQUEUE: reject: 451 4.3.5 Server configuration error
. Ich konnte keine Ressourcen dazu finden, aber einige Leute sagten, es sei nicht möglich.
Bearbeitung 3:
Der Grund für diese Frage ist, dass wir einen Kunden haben (sagen wir customer.com), der einige Aliase verwendet, die E-Mails an eine Domäne weiterleiten, sagen wir example.com.
Der Mailserver bei example.com akzeptiert keine E-Mails von einem externen Server, die von einem Absender @example.com stammen.
Alle Mails, die von example.com an[email geschützt]wird am Ende abgelehnt.
Eine Ausnahme auf dem Mailserver von example.com ist nicht möglich.
Wir haben dieses Problem nicht wirklich gelöst, werden aber versuchen, es zu umgehen, indem wir Listen (Mailman) anstelle von Aliasnamen verwenden. Das ist allerdings weder wirklich schön, noch eine echte Lösung.
Ich freue mich über alle Vorschläge, wie dies angemessen umgesetzt werden könnte.
Antwort1
Ich bin nicht sicher, ob Sie das erreichen konnten, was Sie wollten. Ich habe etwas Ähnliches getestet, brauchte Keyword-Filterung usw. auf Domänenbasis und konnte header_checks auf Domänenbasis oder für die gewünschten Domänen mithilfe der Multi-Instance-Funktion von Postfix verwenden.
Sie erstellen eine Instanz und ändern einfach den SMTP-Port dieser bestimmten Instanz. Sie verwenden transport_maps auf der primären Instanz, um E-Mails für eine bestimmte Domäne an den SMTP-Port der sekundären Instanz weiterzuleiten. Führen Sie dort alle Header-Checks durch und leiten Sie die E-Mail weiter!
Prost!
Antwort2
Sie können einen neuen Server einrichten, alle Domänen, die Sie verarbeiten möchten, mithilfe einer Transportdatei weiterleiten und dann die Header_Checks-Regeln auf dem neuen Server anwenden.