centos – 如何禁用sendmail / clientmqueue?

由于sendmail向root发送邮件(/ var / spool / mail / root为2GB),我们的服务器的/ var / direction会一直填满。

我们所有的站点脚本都使用外部smtp服务器发送邮件,所以我们希望在服务器上禁用sendmail,以避免这个问题再次发生,因为每次目录填满mysqlclosures,因为它不能写入/ var / log /目录,因为它的空间不足。

有什么办法可以安全地closuressendmail,不会影响PHP连接到外部smtp? 我不确定是否使用sendmail。

或者,也许有人知道一种方法来禁用sendmail发送电子邮件到根,不pipe是什么。

你最好的select是简单地通过/ etc / aliasesredirect根邮件。 select另一个可以处理邮件量的地址。 如果没有,redirect到/ dev / null。 Sendmail可以closures,不会影响PHP发送邮件,假设PHP页面被写入特定的外部SMTP服务器。 如果他们只发送邮件而不指定要连接的服务器,则最终会通过本地主机进行中继,因此在本地closuressendmail会导致PHP脚本失败。

closuressendmail可能会或可能不会帮助取决于如何生成本地邮件。 您仍然可能会收到2G根邮箱。 您需要决定是否将此机器上的用户的邮件发送到别处或丢弃。 您可以从/etc/mail/aliases这是一个“静态”解决scheme(因为每个新用户都被添加到系统中,您也需要在该文件中添加一行),或者更“dynamic”例如,在本地用户的电子邮件被转发到其他地方的指定用户:

 LOCAL_CONFIG Kuser user -m -a.FOUND LOCAL_RULE_0 R$- < $=w . > $* $: $(user $1 $) < $2 . > $3 R$- . FOUND < $=w . > $* $@ john.doe < @ example . com . > $3 

上面的行被添加到sendmail.mc 。 接下来根据您的发行版的指令,您生成sendmail.cf并重新启动sendmail。 在CentOS中,这意味着运行/etc/mail/make后再service sendmail restart

如果以root用户身份运行,只需在第一行发送MAILTO =“”,如果您有兴趣接收通知。 将其设置为将监视crontab活动的电子邮件地址是一个很好的build议。

 MAILTO="" * * * * * /bin/bash script.sh 

或监视器电子邮件地址

 MAILTO="[email protected]" * * * * * /bin/bash script.sh