【问题标题】:Unable to connect to example.com:25 (Connection timed out) using smtp无法使用 smtp 连接到 example.com:25(连接超时)
【发布时间】:2014-09-24 16:59:40
【问题描述】:

我正在使用这个 google 课程和代码 https://code.google.com/p/php-smtp-email-validation/ 来检查一系列电子邮件,并了解哪些是真实的,哪些不是。

但我得到一个错误:

无法连接到 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: <user@yourdomain.com>
<<<
250 user@yourdomain.com....Sender OK
>>>
RCPT TO: <thiago.sabin@hotmail.com>
<<<
250 thiago.sabin@hotmail.com 
>>>
RSET
<<<
554 Transaction failed
>>>
quit
<<<

我可以看到发件人没问题,我正在尝试检查我的个人电子邮件 thiago.sabin@hotmail.com,这就是答案... 这段代码实际上很简单,但我无法让那个“交易”工作

【问题讨论】:

  • 您的 ISP 可能会阻止它。许多 ISP 会阻止除 SMTP 中继之外的端口 25,以防止其客户发送垃圾邮件。
  • 您是否在尝试使用示例中的电子邮件而不进行更改?当然 example.com 不是一个有效的服务器,或者我误解了什么?
  • example.com 只是一个“占位符”。见example.com
  • 更新了我的答案。 tl;博士是它通常不起作用,我建议不要使用它。

标签: php validation email


【解决方案1】:

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

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

【讨论】:

  • 是的,在运行了一些测试之后,这个 smtp 验证是“说”许多有效的电子邮件是无效的......我正在寻找一些验证,比如当你给一个无效地址写一封电子邮件时,比如“sfshduifhasd@ hotmail.com”并且该消息返回说它是无效的。我不能只检查电子邮件格式是否正确,我需要更多的“确定性”,你知道:c
猜你喜欢
  • 1970-01-01
  • 2012-12-21
  • 2018-07-08
  • 1970-01-01
  • 2014-07-10
  • 2016-07-29
  • 2014-10-23
  • 2011-11-01
  • 1970-01-01
相关资源
最近更新 更多