【发布时间】:2011-07-06 02:28:00
【问题描述】:
我在 Ubuntu 上使用 PHP 和 apache 安装了 sendmail。当我尝试以下命令行时
php -r "mail('test@gmail.com', 'test', 'test')"'
它成功发送了电子邮件。
但是,运行文件“test_send_mail.php”:
<?php
mail('test@gmail.com', 'test', 'test')
?>
不发送电子邮件。
使用 .php 文件的不成功尝试会生成日志条目:
`Jul 5 21:24:47 www sendmail[25603]: p661OlL7025603: from=www-data, size=106, class=0,
nrcpts=0, msgid=, relay=www-data@localhost
使用命令行的成功尝试会生成日志条目:
Jul 5 21:22:40 www sm-mta[25533]: p661MevV025533: from=<root@www.server.com>,
size=352, class=0, nrcpts=1, msgid=<201107060122.p661Mecm025532@www.server.com>,
proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
有人知道会发生什么吗?感谢您的帮助!
【问题讨论】:
-
PHP
mail()函数实际上是相当有限和古怪的。如果您打算向您网站的用户或为您网站的用户发送电子邮件,您应该使用适当的库,例如 PHPMailer。这为您提供了附件处理和更好的标头支持等功能。 -
来吧,邮件可以发送任何东西,包括附件等等。还有更多关于发送电子邮件的传输。在 PHPMailer 的情况下,它主要使用 SMTP,而邮件功能使用 linux sendmail 程序。它似乎是为 root 用户配置的,但不是为 www-data
标签: php apache ubuntu sendmail