微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sendmail不适用于chroot的php-fpm和nginx

如何解决sendmail不适用于chroot的php-fpm和nginx

我正在Ubuntu 16.04上使用NginxPHP-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");

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

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

此日志显示呼叫,例如

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

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

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

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

PHPinfo()也显示所有内容都已配置(sendmail-path)。 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 审计,...)

从命令行发送工作正常:

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

已解决

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


一些有用的链接:

PHP mail function not working on Centos server https://www.mantisbt.org/forums/viewtopic.php?f=3&t=15398

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。