(php)fsockopen错误,但telnet连接有效

时间:2012-01-20 23:13:45

标签: php email smtp telnet fsockopen

我很困惑,我正在尝试通过PHP发送电子邮件,但我遇到了一个特定的邮件服务器问题,另一个工作正常。

当我尝试时:

$smtp_conn = fsockopen('mail.onedomain.com',25,$errno,$errstr,30);
echo $errno . '<br>' . $errstr;

我明白了:

110
Connection timed out

但是...

我转到开始&gt; cmd,然后写:

telnet mail.onedomain.com 25

我得到了:

220 server1.onedomain.local Microsoft ESMTP MAIL Service Ready at Sat, 21 Jan 2012 00:05:04 +0100

我不明白这一点,连接是用telnet进行的,但是我不能在PHP中用相同的参数进行...有人有任何想法吗?

我怀疑问题是邮件服务器的错误配置,但是......我怎么能说明?

谢谢! 卡尔斯。

1 个答案:

答案 0 :(得分:0)

羞耻这从未得到回答。我正撞着一堵砖墙,问题完全一样。 Bash telnet工作正常,但php fscokopen失败了。

解决方案: - 使用ip代替服务器而不是CNAME。

所以而不是:

$smtp_conn = fsockopen('mail.onedomain.com',25,$errno,$errstr,30);
echo $errno . '<br>' . $errstr;

使用:

$smtp_conn = fsockopen('000.000.000.000',25,$errno,$errstr,30);
echo $errno . '<br>' . $errstr;