我想现在写电子邮件并让它们在将来的某个特定时间发出,例如。当办公室早上开门时。
这样做的好方法是什么?
大多数用户代理不支持此功能。这对我来说很有意义,因为你可能不能指望它们全天候运行。
是否有延迟发送的服务器端功能?我现在运行一个 Postfix 邮件服务器。
Unix 的方式是什么?
(我知道 KMail 有这个功能,但我想避免这个特定的应用程序,因为它会拖累大量的基础设施。)
答案1
如果你使用 postfix,有一个机制解释这里,我还没有尝试过。
通过复制并添加行来重新配置 postfix /etc/postfix/main.cf
:
defer_transports = hold
default_transport = hold
请注意,您可能已经有一个default_transport
.将新文件与真实文件交换main.cf
并重新启动 postfix 并发送邮件。他们将被放入hold
队列中。要释放队列,请恢复实际main.cf
,重新启动 postfix 并强制队列释放
sudo service postfix restart
sudo mailq -q
除了上述之外,您还可以保留具有给定标头的邮件,例如,如果您的邮件程序允许您添加X-
样式标头,或者您想要匹配给定的Subject: junk of the day
标头字符串。检查您的后缀是否实现了该regexp
功能:
postconf -m|egrep 'regexp|pcre'
应至少输出 regexp。创建文件/etc/postfix/header_checks
并将要匹配的标头的 regexp 模式放入其中,后跟HOLD
,例如:
/Subject: *junk of the day/ HOLD
将此地图文件的名称添加到/etc/postfix/main.cf
:
header_checks = regexp:/etc/postfix/header_checks
并重新启动后缀。发送合适的邮件并检查mailq
它是否在保留队列中(!
队列 ID 旁边显示 )。要释放并发送所有保留的邮件:
sudo postsuper -H ALL
sendmail -q