With postfix and cron delivery of new mail messages may be certain times quite easily prevented. It can for example be prevent from that emails are delivered via push to inopportune times to a user.
Add a hash-table in /etc/postfix/main.cf
to smtpd_recipient_restrictions
:
check_recipient_access hash:/etc/postfix/hold
In the file /etc/postfix/hold
all domains and email addresses can be entered which may currently receive no emails.
example.com HOLD
postmaster@example.de HOLD
After changes to the file you must run
postmap hash:/etc/postfix/hold
so that postfix accepts the changes and (re)creates the db-file.
In order to process the messages resting on hold, you must run
postsuper -r ALL
If, for example, mails from 06:00 pm – 07:00 am should not be delivered, a cron script can be executed at 06:00 pm
#!/bin/sh
sed -i 's/^#//g' /etc/postfix/hold
postmap hash:/etc/postfix/hold
Thus #
is removed in all lines of /etc/postfix/hold
and postfix creates the lookup table again.
The service is enabled again when #
is placed in the hold file at the beginning of each line (this comments a line). At the same time all hold-mails , will be released. The script would then run at 07:00 am.
#!/bin/sh
sed -i 's/^/#/' /etc/postfix/hold
postmap hash:/etc/postfix/hold
postsuper -r ALL