php电子邮件的SMTP错误

时间:2011-06-02 15:41:29

标签: php

我正在尝试设置一个php脚本,它会向所选用户发送一封电子邮件,我在互联网上查看了但是无法运行脚本但是我得到了以下错误:

  

警告:mail()[function.mail]:   “sendmail_from”未在php.ini中设置或   自定义“From:”标题丢失   E:\ PROGRAM   Files \ xampp \ phpMyAdmin \ emailer.php on   第10行

以下是我按照示例设计的脚本代码:

<?php
    $recipient = "<ismael.srcyber@gmail.com>";
    $subject = "Flight Status";
    $body = "Flight has just landed.";

    $host = "ssl://smtp.gmail.com";
    $port = "465";


    if(mail($recipient, $subject, $body))
    {
        echo("<p>Message successfully sent</p>");
    }
    else
    {
        echo("<p>Message Delivery failed </p>");
    }
?>

提前致谢。

1 个答案:

答案 0 :(得分:1)

由于错误建议您必须在php.ini中添加默认的“from”字段(发送邮件的人):

SMTP = localhost


sendmail_from = me@localhost.com

然后重启apache

否则你可以将它作为第四个参数设置为php手册中所述的第四个参数(看http://php.net/manual/en/function.mail.php

  

注意:

     

发送邮件时,邮件必须   包含From标头。这可以设置   使用additional_headers参数,   或者可以在php.ini中设置默认值。

     

如果不这样做,将导致   类似于警告的错误消息:   mail():“sendmail_from”未设置   php.ini或自定义“From:”标题   失踪。 From标头也设置   Windows下的返回路径。

示例:

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);