我在Ubuntu16.04上使用nginx和php 7.4运行多站点设置。所有的网站都是彩色的,一切都像魅力一样运行。除了邮件()通过sendmail。(php版本在这里并不重要,我从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这个日志显示了调用。
16-2020年10月21日:17:46欧洲/柏林邮件() on /htdocs/mail.php:8: To: foobar@gmail.com -标头: root@example.com -主题:测试
我还安装了最新版本的mini_sendmail (https://acme.com/software/mini_sendmail/),因为我意识到sendmail需要十几个文件,而我必须将这些文件挂载到我的彩色文件夹中。因此,我下载了mini_sendmail,将其重命名为sendmail,并将其放入mini_sendmail文件夹中。
使用php、php-cgi从命令行运行该脚本也是有效的:
php-cgi mail.php
php-cgi mail.phpphpinfo()还显示了所有的配置(sendmail-path)。shell-exec和exec是允许的函数。/bin/sh也在chroot监狱里。一切似乎都很好。
有什么想法吗,我在这里错过了什么?我甚至没有收到错误信息,这可能对我有帮助。
发布于 2021-01-10 09:06:56
这里的centos 7,nginx 1.18,php 7.4也是如此。
从PHP应用程序(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
https://stackoverflow.com/questions/64395448
复制相似问题