在特定时间发送电子邮件

在特定时间发送电子邮件

我想现在写电子邮件并让它们在将来的某个特定时间发出,例如。当办公室早上开门时。

这样做的好方法是什么?

大多数用户代理不支持此功能。这对我来说很有意义,因为你可能不能指望它们全天候运行。

是否有延迟发送的服务器端功能?我现在运行一个 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

相关内容