Zeitweise die Mailzustellung für eine Domain verhindern


Mit postfix und cron lässt sich die Zustellung neuer Mails zu bestimmten Zeiten recht einfach realisieren. So lässt es sich z.B. verhinden, dass Emails per push zu Unzeiten auf dem Smartphone landen.

In /etc/postfix/main.cf die smtpd_recipient_restrictions um eine Hash-Tabelle erweitern:

check_recipient_access hash:/etc/postfix/hold

In die Datei /etc/postfix/hold werden alle Domains und Email-Adressen eingetragen, die aktuell keine Mails empfangen sollen.

example.com HOLD
postmaster@example.de HOLD

Nach Änderungen oder dem Anlegen der Datei muss

postmap hash:/etc/postfix/hold

ausgeführt werden, damit postfix die Änderungen übernimmt.

Um die auf hold liegenden Mails zu verarbeiten, muss

postsuper -r ALL

aufgerufen werden.

Sollen bspw. Mails von 18:00 – 07:00 nicht zugestellt werden, kann ein Script per cron um 18:00 ausgeführt werden

#!/bin/sh
sed -i 's/^#//g' /etc/postfix/hold
postmap hash:/etc/postfix/hold

Dadurch wird # in allen Zeilen von /etc/postfix/hold entfernt und postfix erstellt den lookup-table neu.

Die Zustellung wird freigegeben, in dem # vor jede Zeile in der Hold-Datei gesetzt wird und diese dadurch kommentiert wird. Zeitgleich werden noch alle auf hold liegenden Mails wieder freigegeben. Das Script würde dann um 07:00 laufen.

#!/bin/sh
sed -i 's/^/#/' /etc/postfix/hold
postmap hash:/etc/postfix/hold
postsuper -r ALL

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *