在我的PHP程序中,我遇到了mail()函数的问题。
我可以在我的脚本中直到这一行调用它:
$this->db_conn = mysqli_connect($this->db_host, $this->db_user, $this->db_pass);
如果我在它之前立即调用mail函数,mail()会成功并返回true。如果我把mail()放在这一行之后,mail()就会失败并返回false。
为什么会发生这种情况?
编辑:我的脚本的其余部分在mail()调用后正常继续。这直到最近才成为问题。是否有一些可能已更改的PHP / Apache设置?
EDIT2:之前没有注意到,但确实出现了警告:
PHP Warning: mail() [<a href='function.mail'>function.mail</a>]: Could not execute mail delivery program '/usr/lib/sendmail -t -i'
mysqli_connect()可以做些什么来防止邮件程序运行?
EDIT3:这是服务器正在运行带有Apache Web服务器的Solaris。现在,我已经将PHPMailer切换到使用SMTP模式,该模式工作正常。仍然试图弄清楚mail()出了什么问题。
答案 0 :(得分:1)
问题几乎可以肯定是数据库连接 - 检查连接字符串是否正常工作,并且可能在mail()调用之前的下一行中输出一些内容(一些跟踪数据与这些数据库变量的关系将是明显的选择)发生了什么以及是否有效。
如果您遇到凭据问题,数据库日志可能会通知您。
答案 1 :(得分:1)
Web服务器可能没有可用的文件描述符,或者达到了文件描述符限制。
答案 2 :(得分:0)
检查您的日志,看它是否报告mail()
或数据库调用失败的任何原因。