Ich möchte meine Postfix-Konfiguration aktualisieren, damit die Domänen eingeschränkt werden, an die E-Mails gesendet werden können. Ich denke daran, smtpd_recipient_restrictions mit check_recipient_access zu verwenden, basierend auf dieser Lösung:https://serverfault.com/a/412805 Sind hier reguläre Ausdrücke zulässig? Ich möchte sagen, dass E-Mails nur an *@mydomain.com gesendet und alle anderen blockiert werden sollen. So etwas wie das hier:
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipients
Wo Empfänger sein werden:
*@mydomain.com PERMIT,
* REJECT,
Ist das machbar?
Bearbeiten: Ich weiß, dass dies mit Transportmap möglich ist, aber wir verwenden bereits check_recipient_access, um einige IDs zu blockieren, und ich würde nach Möglichkeit lieber keine weitere Konfiguration einführen.
Antwort1
Ja, sieheMann 5 regexp_table.
Das Format ist anders, Sie müssen die vollständigen regulären Ausdrücke ausschreiben:
/.*@example\.com/ OK
/.*/ REJECT
oder noch kürzer,
!/.*@example\.com/ REJECT
(Die Standardaktion ist „nicht gefunden“, daher wird mit den folgenden smtpd_recipient_restrictions
Elementen fortgefahren und sie ist standardmäßig zulässig.)
Speichern Sie es in einer Datei und verwenden Sie den Hook wie folgt:
smtpd_recipient_restrictions =
...
check_recipient_access regexp:/etc/postfix/my_regexp_recipients.cf,
...
Postfix erlaubt seit Version 3.7 die Angabe von regulären Ausdrücken inline. Ihre Tabelle ist sehr kurz, daher könnten Sie am Ende folgendes erhalten:
smtpd_recipient_restrictions =
...
check_recipient_access regexp:{ { !/.*@example\.com/ REJECT } },
...
und keine zusätzlichen Dateien.
Sei vorsichtig. Dubrauchenandere Einschränkungselemente zu haben. Wenn Sie es einfach so einrichten, kann Ihr Server zu einem offenen Relay gegenüber werden , wenn Sie in diesem oder anderen Parametern ( usw.) *@example.com
keine Maßnahmen dagegen ergreifen .smtpd_*_restrictions
reject_sender_login_mismatch