2012-01-20 24 views
0

私は非常に混乱しています。私はPHPを使って電子メールを送信しようとしていますが、特定のメールサーバーに問題があります。(php)fsockopenエラーですが、telnet接続が動作します

私がしよう:

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

を私が手:

110 
Connection timed out 

けど...

私は> 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で行うことはできません。

問題はメールサーバーの構成が悪いと思われますが、どうすればdemostrateできますか?

ありがとうございます! Carles。

+0

別にエラーからあなたがこの方法で受信されています。あなたは "メール" PHP関数の使用を検討しましたか?あなたが少し畳んだものを試しているような気がします。 –

+0

SMTPコマンドを手作業でソケットに書き込んだり、PHPの 'mail'を使うのは、[SwiftMailer](http://swiftmailer.org/)のような高品質なサードパーティのメーリングリストを使うよりも客観的に悪いです。 – Charles

答えて

0

これは決して答えられません。私はまったく同じ問題で、私の頭をレンガの壁に叩いていました。 Bash telnetは正常に動作しましたが、ph fscokopenは失敗しました。

解決方法: - CNAMEではなくサーバーの代わりにipを使用します。

ので、代わりの

$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; 
関連する問題