2016-10-26 4 views
0

SSLを使用してGmailのサーバーにソケットを開くと、さまざまなサーバーに対して異なる応答が返される理由を理解しようとしています。これにより、Gmailに接続してメールを送信できなくなります。以下Gmailに接続するとソケット経由でSMTPが返される

非常に単純なスクリプトである:[たSSL証明書がインストール】サーバ2でstring(57) "220 smtp.googlemail.com ESMTP s89sm726209qkl.44 - gsmtp "

:上記のコードの出力は、サーバ1上

<?php 

$smtp_connect = fsockopen('ssl://smtp.googlemail.com', 465, 
    $errno, 
    $errstr, 
    300); 

var_dump(fgets($smtp_connect, 512)); 

?> 

[NOのSSL証明書がインストールされていません]上記のコードの出力はstring(71) "220-mycompany.pro.com ESMTP Exim 4.87 #1 Wed, 26 Oct 2016 07:42:49 -0400 "

誰にもこのようなことが起こる理由を説明することはできますか、どのようにサーバー2をサーバー1と同じように動作させることができますか?

更新:smtp.gmail.comも試してみましたが、出力はsmtp.googlemail.comと同じです。

答えて

0

SMTPのウェルカムメッセージが届いた行。異なるサーバーが異なるウェルカムメッセージを送信することは、まったく正常です。あなたが送るコマンドへの応答が違うのは普通のことです。つまり、SMTPサーバーと通信するときは、応答として固定文字列を使用するのではなく、SMTPの適切な解析を実装する必要があります。このプロトコルの詳細については、the SMTP standard (RFC 2821)を参照してください。

+0

ありがとうございました! –

関連する問題