我已经安装了PHP版本5.3.3-7 + squeeze14的apache,我无法收到邮件,这是我正在使用的代码:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
echo 'I am : ' . `whoami`;
$result = mail('*****','Testing 1 2 3','This is a test.');
echo '<hr>Result was: ' . ( $result === FALSE ? 'FALSE' : 'TRUE') . $result;
echo '<hr>';
echo phpinfo();
这是我得到的回应:
I am : www-data
Result was: FALSE
在我的php.ini中,我已经编辑了两行,这就是现在的样子:
sendmail_path = /usr/sbin/sendmail -t -i -f something@****.lt
sendmail_from = something@****.lt
/var/log/mail.log
完全是空的,即使你现在已经尝试了一个多小时的各种事情。
我对linux很陌生,所以我很确定我错过了一些似乎无法找到的明显内容......
编辑忘记提到每次我对配置进行一些更改时都会重启apache,而我正在使用Debian 6.0
答案 0 :(得分:2)
您需要安装postfix或sendmail(首选Postfix)
php mail()函数需要以任何方式使用MTA。
或者您可以使用复杂的方式和脚本编写一个smtp Mailclass:email.about.com/od/emailprogrammingtips/qt / ...
或者您可以使用phpmailer:phpmailer.worxware.com。
但是为了能够使用mail()你需要一个mta(Aka postfix或sendmail)
答案 1 :(得分:2)
在许多服务器上以多种方式配置mail()函数。使用具有SMTP支持的邮件类将为您节省大量时间。我更喜欢:
https://github.com/Synchro/PHPMailer
另一方面,使用垃圾邮件过滤器等发送每个SMTP服务器的邮件效果更好。