【问题标题】:php fsockopen unable to connect, connection timeout errorphp fsockopen无法连接,连接超时错误
【发布时间】:2010-11-26 21:49:06
【问题描述】:

我在 ubuntu 机器上运行本地 apache 服务器,我正在尝试使用 phpmailer 类发送邮件。 它尝试通过 fsockopen 连接到邮件服务器,但会引发超时错误。我尝试将超时设置为 15 秒,但没有成功。 它确实可以在其他机器上运行。

如何确定我的 ISP 是否阻止了请求? 邮件服务器响应 ping。

【问题讨论】:

  • 您连接到哪个邮件服务器?大多数住宅 ISP 不允许将端口 25 连接到除他们自己的服务器之外的任何服务器。尝试将传出服务器更改为您的 ISP 的 SMTP 服务器。
  • 您可以使用 MUA (thunderbird/outlook/mail.app) 通过它发送电子邮件吗?
  • 我在fsockopen 遇到了这个问题,其中主机有多个 IP。我可以 telnet/swaks 到相同的主机名没问题,但 fsockopen 总是超时。通过使用gethostfromname(),然后直接使用IP,fsockopen开心多了,也没有超时。很奇怪。

标签: php timeout connection fsockopen


【解决方案1】:

ping 和 SMTP 命令不通过同一个端口;有可能打开了一个端口,而没有打开另一个。

如果有超时,可能意味着:

  • 您的 SMTP 服务器不接受来自您的服务器的连接
  • 或某处(如防火墙)阻止了您的请求。

如果您对服务器有 ssh 访问权限,在命令行中使用 telnet 尝试连接到 SMTP 服务器,并发送 SMTP 命令,可能会让您获得更多信息...

这里有几个链接显示了通过 telnet 进行 SMTP 会话的示例:

如果您无法连接到服务器,可能会收到一些错误消息(例如,告诉您不允许连接),或者它会再次超时...这可能意味着您的请求在某处被阻止...

在这种情况下,请咨询您的网络管理员;也许他会对在防火墙上打开一些端口有所了解。

【讨论】:

    猜你喜欢
    • 2018-12-30
    • 2012-02-03
    • 2017-03-08
    • 2013-10-02
    • 2018-07-08
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    相关资源
    最近更新 更多