Задний план: Я фанат Дэвида Аллена Приступаем к делу, а это означает, что когда в мой почтовый ящик приходит электронное письмо, если я могу ответить сразу, я хочу сделать это и оставить свой почтовый ящик чистым. Но есть проблема: если я отвечу сразу, шансы получить ответ на ответ повышаются. Так что я хочу предел скорости моя электронная почта от установка задержки для некоторых исходящих сообщений. Опоздания на час, четыре часа или даже сутки подойдут для моих нужд.
У меня вопрос: как лучше всего реализовать эту идею в системе Linux с Postfix?
Вот несколько наблюдений:
X-Delay:
заголовок в любом исходящем сообщении, чтобы указать, что сообщение должно быть отложено, и на сколько.sendmail
.header_checks(5)
который будет проверять заголовки и предпринимать действия, но хотя есть действие для помещения почты в «отложенную» очередь, нет никаких действий для помещения почты в «отложенную» очередь. Если бы я мог надежно поместить электронное письмо в «отложенную» очередь с подходящей временной меткой (т.е. через N часов в будущем), я думаю, моя проблема была бы решена.Все предложения приветствуются, хотя я бы предпочел не заниматься исправлением Postfix ...
Я отказался от использования postfix для решения этой проблемы. Вместо этого я нашел относительно чистый способ решить проблему с помощью MH, почтовой программы, которую я использую более 15 лет:
Исходящее письмо, которое должно быть отложено на N часов, помещается в "черновую папку" MH. +delayN
.
Когда я закончу составлять письмо, чтобы убедиться, что я оставлю письмо в папке, а не отправлю его, у меня есть измененный whatnow
программа, которая лечит send
как синоним quit
если сообщение хранится в папке, имя которой имеет вид delayNNN
, где NNN
непустая последовательность цифр.
Моя почасовая проверка работы cron все соответствующие папки и файлы кораблей, которые достаточно старые (детали опущены):
for path in $MAIL/delay*[0-9]
do
minutes=...
for outgoing in $(find $path -mmin +$minutes -name '[0-9]*')
do
folder=...
msg=...
send -draftfolder +$folder -draftmessage $msg
done
done