| 
PHP 需要一个已安装且正在运行的邮件系统,以便使邮件函数mail()可用。所用的邮件系统程序通过在 php.ini 文件中进行设置。 用如下代码发送邮件,可总是发送失败。 [PHP] view plaincopyprint?
  <?php  
$to = "xxxxxxxx@qq.com";  
$subject = "Test mail";  
$message = "Hello! This is a simple email message.";  
mail($to,$subject,$message);  
?> 经查,PHP 需要一个已安装且正在运行的邮件系统,以便使邮件函数mail()可用。所用的邮件系统程序通过在 php.ini 文件中进行设置。具体解决方法如下: 1.安装sendmail sudo apt-get install sendmail sudo apt-get install sendmail-cf sudo apt-get install mailutils 2.配置sendmail 打开/etc/mail/sendmail.mc,找到如下行: DAEMON_OPTIONS('Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl 将127.0.0.1改为0.0.0.0 执行如下命令备份旧的,生成新的配置文件: cd /etc/mail mv sendmail.cf sendmail.cf~ m4 sendmail.mc > sendmail.cf 3.测试 echo "This is a test mail." | mail -s "test" xxxxxxxx@qq.com 注意:该邮件会被当作垃圾邮件接收,另外如果使用163邮箱可能会被直接过滤掉而无法收到。 4.配置php.ini文件 打开/etc/php5/apache2/php.ini,找到如下行: ; sendmail_path =  将该行改为:sendmail_path = /usr/sbin/sendmail -t 这里特别需要注意的是“-t"参数必不可少,如果缺少了它,当通过浏览器执行原php文件时,mail()函数会执行失败,但是如果直接在服务器端使用php命令行执行原php文件则不会出现问题。 5.重启apache sudo /etc/init.d/apache2 restart  此时再次执行原,成功了。
  |