Php电子邮件没有工作错误

时间:2011-08-27 07:23:09

标签: php apache email xampp

我正在使用xampp 1.7.4(PHP 5.3.5),当我向我的电子邮件地址发送电子邮件时,它正在工作。甚至我使用邮件服务器作为例子它不工作。下面是代码。

<?php
    ini_set("SMTP","mail.sweetinteractive.com");
    $suc = mail("uzair@sweetinteractive.com","Learning PHP","Message is not working ","From: uzair@sweetinteractive.com");
    if($suc){
        echo "Mail sent";
    } else {
        echo "Mail sending Failed.";
    }
?>

即使我尝试使用我们的邮件服务器。但它的显示和错误

Warning: mail() [function.mail]: SMTP server response: 550 Access denied - Invalid HELO name (See RFC2821 4.1.1.1) in C:\xampp\htdocs\LearnPhp\email1.php on line 3

5 个答案:

答案 0 :(得分:1)

您似乎错过了“发件人:”标题上的结束语。

答案 1 :(得分:0)

您的系统必须发送所谓的完全限定域名,请参阅http://tools.ietf.org/html/rfc2821#section-4.1.1.1

这很可能是您的邮件服务器中的反垃圾邮件保护设置 - 它可以防止“普通”客户端计算机直接发送邮件,这种策略通常被恶意软件使用。

答案 2 :(得分:0)

确保php.ini中的SMTP正确无误,并将其与您的邮件服务器相匹配。

答案 3 :(得分:0)

您有两种选择:

将系统的主机名更改为FQDN(此操作有点极端,甚至可能在您的设置中不可能,具体取决于许多因素),或者使用PEAR::Mail或类似的方法来指定HELO / EHLO中使用的名称。

答案 4 :(得分:0)

请在xampp文件夹中配置php.ini和sendmail.ini文件。

首先:需要更改php.ini中的字段(rootdrive:\ xampp \ php \ php.ini)


(注意:分号';'表示ini文件中的注释)

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = mail.sweetinteractive.com
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = uzair@sweetinteractive.com

第二步:更改sendmail.ini文件(rootdirectory:\ xampp \ sendmail \ sendmail.ini)


注意:删除分号(;)表单给出以下字段 并在sendmail.ini文件中进行更改

smtp_server=mail.sweetinteractive.com

; smtp port (normally 25)

smtp_port=25

auth_username=uzair@sweetinteractive.com
auth_password=give your password here without any quotes

我相信这应该会奏效。因为您在之前的帖子中没有提供任何身份验证参数。

注意:在php.ini和sendmail.ini文件中进行更改后,从Xampp控制面板停止apache服务并再次运行。

和你的php代码


<?php
    ini_set("SMTP","mail.sweetinteractive.com");
    $suc = mail("uzair@sweetinteractive.com","Learning PHP","Message sending will work now","From: uzair@sweetinteractive.com");
    if($suc){
        echo "Mail sent";
    } else {
        echo "Mail sending Failed.";
    }
?>