数据库连接后PHP mail()失败

时间:2009-12-31 00:31:21

标签: php mysql email

在我的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()出了什么问题。

3 个答案:

答案 0 :(得分:1)

问题几乎可以肯定是数据库连接 - 检查连接字符串是否正常工作,并且可能在mail()调用之前的下一行中输出一些内容(一些跟踪数据与这些数据库变量的关系将是明显的选择)发生了什么以及是否有效。

如果您遇到凭据问题,数据库日志可能会通知您。

答案 1 :(得分:1)

Web服务器可能没有可用的文件描述符,或者达到了文件描述符限制。

答案 2 :(得分:0)

检查您的日志,看它是否报告mail()或数据库调用失败的任何原因。

相关问题