我有一个简单的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