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