我有一个简单的test.php
文件,上面写着:
if (mail('my-real-address@gmail.com', 'test mail', 'test mail test')){
echo 'ok';
}
else{
echo 'bad';
}
当我在CLI中使用php5 -f test.php
执行此文件时,文件的输出为ok
,我正确收到电子邮件,/var/log/mail.log
会写入行。
但是,当我从apache2的虚拟主机(通过加载它)执行此文件时,它也会显示ok
,但是没有创建日志,我也没有收到e -mail(它也不在SPAM文件夹中)。
知道我可能做错了什么吗?
我想到的一个想法是,在CLI中我将其作为用户X
执行,而在虚拟主机中我相信我将其作为www-data
用户执行。但是,我不知道在哪里检查postfix是否有任何此类限制。
有什么想法吗?
修改
我在CLI中将其测试为www-data
,它在CLI中对此用户起作用。
sudo su www-data
php5 -f test.php
答案 0 :(得分:2)
你检查过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