通过 PHP 发送时 Sendmail 出现错误

通过 PHP 发送时 Sendmail 出现错误

我正在尝试设置一个新的帮助台程序(Kayako),但在将邮件转发到我们的邮件服务器时遇到了问题。

这是我收到的错误:

sendmail[2371]: NOQUEUE: SYSERR(apache): 无法 chdir(/var/spool/clientmqueue/): 权限被拒绝

我将clientmqueue文件夹的所有权更改为smmsp:apache具有与通常相同的 770 权限,但错误仍然出现。

答案1

根据“bat book”(第4版,第168页),该目录的推荐权限是:

chown smmsp:smmsp clientmqueue
chmod 0770 clientmqueue

答案2

Sendmail 应该正在运行setgid,否则邮件队列必须可由 PHP 写入。听起来您的服务器并非如此。

答案3

因此,我最终从头开始,只是为了确保我只安装了最少的软件包,并且没有任何冲突的包。

然而,SELinux 仍然阻止我连接到外部邮件服务器。

我会收到如下警告:

[警告]:stream_socket_client():无法连接到 mail.mydomain.com:25(权限被拒绝)(Transport/StreamBuffer.php:263)

httpd_can_network_connect我发现我需要通过设置 SELinux 布尔值来允许 HTTPD 脚本和模块连接到网络on

我通过运行以下命令完成了此操作: setsebool -P httpd_can_network_connect on

如果您不使用该-P标志,则更改不会保存到策略文件中,并且在重新启动后也不会保留。

我只是想把这个发布给遇到类似问题的人。我相信 httpd_can_network_connect没有设置为on也会导致sendmail错误。

相关内容