我在 Fedora 15 上使用 sendmail 版本 8.14.4 发送电子邮件。我的 Rails 应用程序使用 delayed_job 来排队电子邮件。消息将按/var/spool/mqueue
预期排队,但并不总是得到处理。我可以看到消息,并且 sendmail 肯定在后台运行。重新启动进程没有任何作用。但是,当我发出命令时sendmail -q
,sendmail 开始工作并开始发送。真正奇怪的是,这种行为只偶尔发生。其他时候,消息排队并按预期传递。
我尝试调整各种 sendmail 配置以减少队列处理之间的时间(例如,添加define('confMIN_QUEUE_AGE', '0')dnl
到/etc/mail/sendmail.mc
),但似乎没有什么效果。有什么想法可能是什么根本原因?
答案1
在我的 FC15 盒子上:
ps auxw | fgrep sendmail
root 1803 ... sendmail: accepting connections
smmsp 1812 ... sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
您有两个 bg sendmail:第一个用于接收邮件,第二个每小时运行一次队列。您可以通过更改 /etc/sysconfig/sendmail 中的设置来调整运行间隔时间(15 分钟是首选值)。
sendmail.mc 内容用于其他目的(请参阅 sendmail-config 包中的 README 文件)
请注意 - 对于库存的 sendmail 配置 - 仅当消息无法立即传送时(例如因为它们被列入灰名单,或者目标服务器已关闭或太忙等),消息才会进入队列,因此非常频繁的队列运行通常没有太大帮助。