繁体   English   中英

sendmail 不适用于 chrooted php-fpm 和 nginx

[英]sendmail not working with chrooted php-fpm and nginx

我正在 Ubuntu 16.04 上使用 nginx 和 php-fpm 7.4 运行多站点设置。 所有网站都被 chroot 了,一切都像魅力一样运行。 除了通过 sendmail 的 mail()。 (php-fpm 版本在这里应该无关紧要,我从 7.1 开始就在努力解决这个问题)。

Sendmail 和 postfix 正在运行和配置。 此行发送电子邮件。

echo "Subject: sendmail test" | /sbin/sendmail -t -i root@example.com

通过 PHP 尝试“相同”不起作用:

mail("foobar@gmail.com","Testing","It's a test.", "root@example.com");

不起作用。 邮件()返回假。 邮件日志 (/var/log/mail.log) 保持为空。 我为 sendmail 配置了日志

php_value[mail.log] = /logs/mail.log

此日志显示呼叫,例如

[2020 年 10 月 16 日 21:17:46 欧洲/柏林] [/htdocs/mail.php:8] 上的 mail():收件人:foobar@gmail.com -- 标题:root@example.com -- 主题:测试

我还安装了 mini_sendmail ( https://acme.com/software/mini_sendmail/ ),最新版本,因为我意识到 sendmail 需要十几个文件,我必须将这些文件安装到我的 chrooted 文件夹中。 所以我下载了 mini_sendmail,将其重命名为 sendmail 并将其放入 chrooted 文件夹/var/nginx/example_com/usr/sbin/sendmail

使用 php 从命令行运行脚本,php-cgi 也可以:

php-cgi mail.php
php-cgi mail.php

phpinfo() 还显示,一切都已配置(发送邮件路径)。 shell-exec 和 exec 是允许的函数。 /bin/sh 也在 chroot-jail 中。 一切似乎都没问题。

任何想法,我在这里缺少什么? 我什至没有收到错误消息,这可以帮助我。

centos 7、nginx 1.18、php-fpm 7.4也是如此。

从 PHP Web 应用程序 (mantisbt) 发送邮件 - 什么也没发生,所有服务器日志都是空的(nginx error.log、php-fpm error.log、maillog、messages、selinux audit,...)

从命令行发送工作正常:

php -r'mail("user@domain.tld", "Subject", "Body");'

解决了

我们终于发现是无效的发件人电子邮件地址(发件人:)导致了问题。 从地址修复后,一切正常。


一些有用的链接:

PHP 邮件功能在 Centos 服务器上不起作用https://www.mantisbt.org/forums/viewtopic.php?f=3&t=15398

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM