守护进程closures后,Sendmail拒绝发送电子邮件

操作系统:Ubuntu 10.04程序:Sendmail

我通过在sendmail.conf中设置daemon_mode =“None”,queue_mode =“Daemon”来禁用守护程序,更新了conf并重新启动了sendmail。

然而,之后,当我试图发送电子邮件,我得到了一个统计=延迟:连接拒绝由[127.0.0.1]从mail.log。

如果我通过设置daemon_mode =“守护进程”再次打开守护进程,那么一切正常。 另外,如果我打开守护程序并尝试发送电子邮件,则由于上述原因而拒绝的所有以前推迟的电子邮件都将在新电子邮件中成功发送。

有没有人知道这里出了什么问题? 我想要的是我希望守护进程停止监听收到的电子邮件,但是要让队列清理未发送的邮件。

/etc/mail/sendmail.mc将DAEMON_OPTIONS改为如下所示:

 DAEMON_OPTIONS(`Name=MTA, Addr=127.0.0.1, Port=smtp')dnl DAEMON_OPTIONS(`Name=MSP, Addr=127.0.0.1, Port=submission')dnl 

然后运行sudo sendmailconfig并设置好。

我相信我已经解决了这个问题。 我认为问题可能是,如果守护进程打开,那么sendmail将依靠守护进程发送电子邮件。 如果守护进程被closures,那么sendmail会以另一种方式发送电子邮件,我不完全知道(请分享你的知识,如果你知道机制:P)。

无论如何,诀窍是我已经把守护进程的邮件主机设置好了,但不是那个“另一个意思”。 我发现这篇文章真的很有帮助。 如果有人遇到同样的问题,可以查看“处理Sendmail v8.12”一节。 显然我应该生成一个submit.cf与一些特定的设置,但我不想搞乱我现有的submit.cf中的其他设置,所以我只是砍了它,并直接修改cf文件。

我find了这一行:

 D{MTAHost}[127.0.0.1] 

并将其更改为:

 D{MTAHost}$mailhost 

其中$ mailhost是我用来发送电子邮件的实际邮件主机,在我的情况下,它是一个谷歌服务器。 修改后,必须重新启动sendmail才能使更改生效。 注意:运行sendmailconfig或者update_conf或者任何其他意味着更新sendmail的conf文件将会丢弃这个改变,因为它没有写入任何.mc文件,而是直接修改cf文件!

我希望我的经验将有助于其他人:)