2014-09-24 75 views
0

我使用这个谷歌类和代码https://code.google.com/p/php-smtp-email-validation/检查电子邮件数组,并得到哪些是真实的,哪些不是。无法连接到example.com:25(连接超时)使用smtp

但是我得到一个错误:

无法连接到example.com:25(连接超时) 错误:无法连接到一个有效的邮件服务器,这个邮箱地址:@ example.com

我没有发现这样的事情,我已经有禁用防火墙等..

那么仍无法正常工作:

Array 
(
    [mx4.hotmail.com] => 5 
    [mx3.hotmail.com] => 5 
    [mx2.hotmail.com] => 5 
    [mx1.hotmail.com] => 5 
    [hotmail.com] => 0 
) 
try mx4.hotmail.com:25 
<<< 
220 BAY004-MC6F11.hotmail.com Sending unsolicited commercial or bulk e-mail to Microsoft's computer network is prohibited. Other restrictions are found at http://privacy.microsoft.com/en-us/anti-spam.mspx. Wed, 24 Sep 2014 10:15:49 -0700 
>>> 
HELO yourdomain.com 
<<< 
250 BAY004-MC6F11.hotmail.com (3.20.0.138) Hello [177.2.47.23] 
>>> 
MAIL FROM: <[email protected]> 
<<< 
250 [email protected] OK 
>>> 
RCPT TO: <[email protected]> 
<<< 
250 [email protected] 
>>> 
RSET 
<<< 
554 Transaction failed 
>>> 
quit 
<<< 

正如我可以看到发件人是好的,即时通讯试图检查我的个人电子邮件[email protected],这就是答案... 这段代码其实很简单,但我不能让该“交易”工作

+1

您的ISP可能会阻止它。许多互联网服务提供商阻止端口25,除了他们的SMTP中继,以防止他们的客户发送垃圾邮件。 – Barmar 2014-09-24 17:02:06

+0

您是否正在尝试使用示例中的电子邮件而不更改它?当然example.com不是一个有效的服务器,或者我误解了一些东西? – Sal00m 2014-09-24 17:07:04

+0

example.com只是一个'占位符'。查看http://www.example.com – jeff 2014-09-24 17:09:45

回答

0

示例代码按预期方式工作,因为[email protected]虽然具有有效格式,但不是有效的电子邮件地址,因为example.com不托管邮件服务器。 Google的示例代码联系接收邮件服务器以查看是否存在给定的地址。尝试将[email protected]替换为另一个电子邮件地址,例如您自己的地址,然后再次运行代码。

编辑:有manyposts这说,使用smtp验证是一个坏主意。它似乎1)不适用于许多smtp服务器和2)使它看起来像你是一个垃圾邮件发送者。我建议只是坚持验证电子邮件地址是否是正确的格式,并放弃使用SMTP验证。

+0

是的,经过几次测试后,这个smtp验证是“说”,许多有效的电子邮件都不是有效的...我正在寻找一些验证,如当你写一封电子邮件到一个无效的地址,如“[email protected]”,该消息回来说它是无效的。我不能只是检查电子邮件格式是否正确,我需要更多“确定”你知道:c – 2014-09-25 18:59:03

相关问题