0

我已经使用 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

4

2 回答 2

2

您需要安装 postfix 或 sendmail(首选 Postfix)

php mail() 函数无论如何都需要一个 MTA。

或者您可以使用复杂的方式编写一个 smtp Mailclass 脚本:email.about.com/od/emailprogrammingtips/qt/...

或者您可以使用 phpmailer:phpmailer.worxware.com。

但是为了能够使用 mail() 你需要一个 mta(又名 postfix 或 sendmail)

于 2013-01-11T12:08:04.517 回答
2

mail() 函数在许多服务器上以多种方式配置。使用带有 SMTP 支持的邮件类将节省您很多时间。我更喜欢:

https://github.com/Synchro/PHPMailer

另一方面,使用垃圾邮件过滤器等,每个 SMTP 服务器发送邮件效果更好。

于 2013-01-11T12:57:06.447 回答