我正在使用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
答案 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)
首先:需要更改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.";
}
?>