首先是几个信息:
mail()
。对于我已经使用SMTP邮件的所有其他项目。我已将PHP mail()
功能的站点超时问题隔离开来。这是我服务器上test.php文件中唯一的代码行:
<?php mail('rudolf@geardev.de', 'test', 'test');
这似乎无穷无尽,然后在40秒后被mod_cgi终止。命令
php -r "mail('rudolf@geardev.de', 'test', 'test');"
命令行上的立即发送电子邮件。
请告诉我你想看哪些日志文件,Apache日志是这样的:
[Thu Jan 17 12:17:00 2013] [warn] [client 178.15.148.43] mod_fcgid: read data timeout in 40 seconds
[Thu Jan 17 12:17:00 2013] [error] [client 178.15.148.43] Premature end of script headers: test.php
我认为问题是我几天前意外地在根目录上运行了chmod -R 775
。除了这个错误之外,我已经修复了所有错误。
答案 0 :(得分:7)
最有可能你使用2个不同的php.ini版本。一个用于cli,一个用于cgi。我相信Debian有这个设置。
确保您的cli和cgi版本具有相同的电子邮件配置,并且它将起作用。
邮件配置密钥是: [邮件功能]
另一种可能性是您的网络用户无法访问执行 sendmail。
同时检查假脱机权限(已更新)
答案 1 :(得分:1)
不要依赖mail()
因为它不可靠而导致问题就像这些一样。多年来我一直很愉快地使用phpMailer。
如果您坚持mail()
,请检查php.ini中的设置(在http://www.quackit.com/php/tutorial/php_mail_configuration.cfm处解释)。请注意,CLI通常具有与FastCGI不同的php.ini。
一些更常见的问题:
FastCGI无权使用sendmail
大附件的内存限制
答案 2 :(得分:0)
我一直在寻找这个特殊的错误,并发现它可能是由各种各样的事情引起的。我不知道你已经尝试做些什么来修复它,但是这里有一些关于可能有用的建议:
<?php
开头,以?>
此处还有另一个关于此问题的问题:PHP Mail Function Causes Error - 所有者声称使用相同设置更改服务器会导致工作mail()函数,这可能表示主机出现问题。
答案 3 :(得分:0)
是否有可能阻止外发SMTP连接的防火墙?该服务器上还有其他可以成功发送电子邮件的东西吗?
我会将此作为评论,但暂时不允许。
答案 4 :(得分:0)
使用时遇到问题:
exec('php -r \"mail('rudolf@geardev.de', 'test', 'test');\"');