(php)fsockopen错误,但telnet连接正常

(php)fsockopen错误,但telnet连接正常,php,email,smtp,telnet,fsockopen,Php,Email,Smtp,Telnet,Fsockopen,我很困惑,我试图通过PHP发送电子邮件,但我在一个特定的邮件服务器上遇到了问题,而另一个服务器一切正常 当我尝试时: $smtp_conn = fsockopen('mail.onedomain.com',25,$errno,$errstr,30); echo $errno . '<br>' . $errstr; 但是 我进入Start>cmd,然后写: telnet mail.onedomain.com 25 我得到: 220 server1.onedomain.local M

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

当我尝试时:

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

我进入Start>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与相同的参数。。。有人知道吗

我怀疑问题是mailserver的配置不好,但是。。。我怎样才能证明

谢谢!
Carles.

真遗憾,这个问题一直没有得到回答。我的头撞在了砖墙上,完全是同一个问题。Bash
telnet
运行良好,但php
fscokopen
只是失败了

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

因此,不是:

$smtp_conn = fsockopen('mail.onedomain.com',25,$errno,$errstr,30);
echo $errno . '<br>' . $errstr;
$smtp\u conn=fsockopen('mail.onedomain.com',25,$errno,$errstr,30);
回音$errno。”
“$errstr;
使用:

$smtp_conn=fsockopen('000.000.000.000',25,$errno,$errstr,30);
回音$errno。”
“$errstr;
除了使用此方法收到的错误之外。您是否考虑过使用“邮件”php函数?感觉你在尝试一些稍微复杂的事情。无论是手动将SMTP命令写入套接字还是使用PHP
mail
都比使用像这样的高质量第三方邮件库更糟糕。
$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;