将邮件发送到本地邮件服务器 - "SENT: 550 The address is not valid."



我正在尝试将邮件发送到本地邮件服务器。我使用hMailServer作为邮件服务器,我已经按照这里提到的配置了它:

在XAMPP 上设置本地邮件(SMTP、POP3、IMAP)服务器

但是当我尝试发送邮件时,我收到了这个错误:

(!)警告:mail()[function.mail]:SMTP服务器响应:550地址无效。在线C:\wamp\www\kariyersitem\register.php中161

邮件服务器的日志文件显示此错误如下:

"DEBUG" 3108    "2012-01-08 18:04:24.447"   "Creating session 14"  
"SMTPD" 3108    14  "2012-01-08 18:04:24.448"   "127.0.0.1" "SENT: 220 localhost ESMTP"  
"SMTPD" 1728    14  "2012-01-08 18:04:24.454"   "127.0.0.1" "RECEIVED: HELO olcay-pc"  
"SMTPD" 1728    14  "2012-01-08 18:04:24.455"   "127.0.0.1" "SENT: 250 Hello."  
"SMTPD" 3108    14  "2012-01-08 18:04:24.457"   "127.0.0.1" "RECEIVED: MAIL FROM:<you@yourdomain>"  
"SMTPD" 3108    14  "2012-01-08 18:04:24.458"   "127.0.0.1" "SENT: 550 The address is not valid."  
"SMTPD" 2040    14  "2012-01-08 18:04:24.459"   "127.0.0.1" "RECEIVED: QUIT"  
"SMTPD" 2040    14  "2012-01-08 18:04:24.460"   "127.0.0.1" "SENT: 221 goodbye"  
"DEBUG" 3392    "2012-01-08 18:04:24.461"   "Closing TCP/IP socket"  
"DEBUG" 3392    "2012-01-08 18:04:24.462"   "Ending session 14"  

我查过地址,确信是正确的
有人能告诉我出了什么问题吗?

这是我的邮件代码:

$to      = $frm_kadi;  
$subject = $site_title.' Üyelik Aktivasyonu';  
$message = 'hello';  
$headers = 'From: '.$contact."rn".'Reply-To: '.$contact."rn".'X-Mailer: PHP/'.phpversion();  
$mresult = mail($to, $subject, $message, $headers);  

我已经检查了$contact,它在我的config.php文件中写为olcayertas@gmail.com。在发送邮件之前,我使用了echo函数来调试我的代码,它是正确的。

目前,我的$contact变量设置为:

$contact = "olcayertas@gmail.com";

更新1

按照@Jared Farrish的建议,在php.ini中将sendmail_from设置为olcayertas@gmail.com解决了第一个问题。但现在我有一个新问题:

"DEBUG" 3108    "2012-01-08 22:15:28.497"   "Creating session 24"  
"SMTPD" 3108    24  "2012-01-08 22:15:28.498"   "127.0.0.1" "SENT: 220 localhost ESMTP"  
"SMTPD" 3108    24  "2012-01-08 22:15:28.499"   "127.0.0.1" "RECEIVED: HELO olcay-pc"  
"SMTPD" 3108    24  "2012-01-08 22:15:28.500"   "127.0.0.1" "SENT: 250 Hello."  
"SMTPD" 4380    24  "2012-01-08 22:15:28.511"   "127.0.0.1" "RECEIVED: MAIL FROM:<olcayertas@gmail.com>"  
"DEBUG" 4380    "2012-01-08 22:15:28.542"   "Total spam score: 0"  
"SMTPD" 4380    24  "2012-01-08 22:15:28.547"   "127.0.0.1" "SENT: 250 OK"  
"SMTPD" 3108    24  "2012-01-08 22:15:28.548"   "127.0.0.1" "RECEIVED: RCPT TO:<olcayertas>"  
"SMTPD" 3108    24  "2012-01-08 22:15:28.548"   "127.0.0.1" "SENT: 550 A valid address is required."  
"SMTPD" 2040    24  "2012-01-08 22:15:28.552"   "127.0.0.1" "RECEIVED: QUIT"  
"DEBUG" 2040    "2012-01-08 22:15:28.552"   "Deleting message file"  
"SMTPD" 2040    24  "2012-01-08 22:15:28.552"   "127.0.0.1" "SENT: 221 goodbye"  
"DEBUG" 4380    "2012-01-08 22:15:28.555"   "Closing TCP/IP socket"  
"DEBUG" 4380    "2012-01-08 22:15:28.556"   "Ending session 24"  

它似乎没有完全得到目的地地址。我正在尝试向自己发送邮件,但它只得到用户名olcayertas和缺少域@gmail.com

更新2

我已经解决了第二个问题。这是我的错误。

更新3

现在我得到这个错误:

"SENT: 530 SMTP authentication is required."

但我已经在Settings->Ptotocols->SMTP->Delivery of e-mail->SMTP Relayer下填写了SMTP身份验证设置。检查CCD_ 10和CCD_。

更新4

Settings->Advanced->IP Ranges->My Compter中禁用hMailServer的Require SMPTP authentication选项解决了SMTP身份验证问题。

要解决SENT: 550550 The address is not valid.问题,必须将sendmail_from设置为php.ini文件中的有效邮件地址。

若要解决SENT: 530 SMTP authentication is required问题,请打开hMailServer Administrator。前往设置->高级->IP范围->我的Compter。禁用"要求SMTP身份验证"部分下的所有选项。

您似乎正在发送"发件人"电子邮件(From Header),如下所示:you@yourdomainyourdomain是无效域。将其更改为有效的电子邮件地址。

您使用you@yourdomain作为From地址,服务器拒绝它。
请使用真实地址。

我猜$contact就是<olcayertas@gmail.com>,这就是问题的原因。尝试将其更改为olcayertas@gmail.com

每次更改php.ini、后都要牢记

你应该重新启动wamp(!!!)

要读取更新的php.ini

p.s.在mail()之前,您可能需要在php脚本中使用ini_set("sendmail_from", "your_user@gmail.com");

相关内容

最新更新