PHP 的 mail() 不能在 Web 上工作,但可以从 CLI 工作



我有一个简单的test.php文件,上面写着:

if (mail('my-real-address@gmail.com', 'test mail', 'test mail test')){
echo 'ok';
}
else{
echo 'bad';
}

当我用php5 -f test.php在CLI中执行这个文件时,文件的输出是ok,我正确地收到了电子邮件,/var/log/mail.log得到了写入的行。

然而,当我从apache2的虚拟主机(从web,通过加载它)执行这个文件时,它也说ok,但没有创建日志,我没有收到电子邮件(它也不在SPAM文件夹中)。

你知道我做错了什么吗?

我想到的一个想法是,在CLI中,我作为用户X执行它,而在virtualhost中,我相信我作为www-data用户执行它。但是,我不知道在哪里检查后缀是否有这样的限制。

任何想法?

编辑

我在CLI中测试了它作为www-data,它在CLI中为这个用户工作。

sudo su www-data
php5 -f test.php

你检查你的php.ini了吗?

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
http://www.quackit.com/php/tutorial/php_mail_configuration.cfm

相关内容

  • 没有找到相关文章

最新更新