E-Mail Ruhezeiten mit Postfix

Im Ubuntuusers Forum bin ich heute über die Frage gestolpert, ob man innerhalb von Postfix die Zustellung von E-Mails z.B. am Wochenende zu unterbrechen. Auch wenn dem Fragesteller meine Lösung nicht ganz zugesagt hat, so fand ich die Lösung so simpel und einfach, dass ich sie auf jeden Fall einmal dokumentiert haben wollte.

Szenario: In einem fest definierten Zeitraum  (z.B. Freitags ab 17 Uhr, bis Montags um 9 Uhr) soll ein bestimmter Nutzer oder eine bestimmte Maildomain keine Mails versenden.

Lösung: Nutzung von smtpd_sender_restrictions innerhalb von Postfix um die Mails innerhalb der Queue zu behalten und die Auslieferung dadurch zu verzögern.

  1. Die main.cf von Postfix um folgende Zeile ergänzen:
    smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/hold
  2. /etc/postfix/hold anlegen (z.B. mittels „touch“) und mittels postmap aufrufen, anschließend kann Postfix neu gestartet werden.
  3. Zu Beginn der Auszeit wird nun per Cron die betreffende E-Mail Adresse der Datei /etc/postfix/hold hinzugefügt. Dies geht z.B. per
    echo „die@email.de HOLD“ >>  /etc/postfix/hold
  4. Nach einem postmap auf /etc/postfix/hold verbleibt nun jede E-Mail die der Benutzer die@email.de versendet in der Postfix Queue hängen.
  5. Am Ende der Auszeit wird die Adresse einfach aus /etc/postfix/hold entfernt (z.B. per sed) und ein weiteres postmap ausgeführt. Anschließend können die Mails mittels „postsuper -r ALL“ aus der Queue entlassen werden.

Statt einer einzelnen Adresse, kann auch eine komplette Maildomain so „gesperrt“ werden.

Schreibe einen Kommentar

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