2012-01-11 11 views
1

私はリモートメールサーバに接続する必要があるときにphpmailerを使用して電子メールを送信しています。 テクニカルサポートからリモートサーバーとサーバーIPをバインドする必要があるという情報があります。 私は初めてソケットをつぶすのは初めてです。fsockopenをsocket_createとsocket_connectに置き換えてください。

残念ながらphpmailerのはfsocketopenを使用していますので、これは私がそれをどのように変化したかである:

//my replacement code 
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
$conn = socket_connect($socket, $host, $port); 
if($conn) { 
    $this->smtp_conn = $socket; 
} else { 
    throw new Exception("Failed to connect to server: ".socket_last_error($socket)); 
} 

//original phpmailer code 
/** 
$this->smtp_conn = @fsockopen($host, // the host of the server 
          $port, // the port to use 
          $errno, // error number if any 
          $errstr, // error message if any 
          $tval); // give up after ? secs 
*/ 

をしかし、その変更後、私は警告を受ける:

  • 警告:fputs():付属のリソースではありませんが有効なストリームリソース

  • 警告:socket_get_status():指定されたリソースは有効なストリームではありません リソース

fsockopenから返されるリソースと互換性のあるリソースを作成するにはどうすればよいですか? var_dumpを使うと、2つの変数が両方ともソケットであることがわかります。しかし、私はまだsocket_createを使って作成されたリソースについて警告を受け取ります。

答えて

0

ソケットリソースではなく、ストリームリソースが返される必要があります。関数stream_socket_client()を使って試してみましょう。

$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, 
$errno, 
$errstr, 
$tval); 

はまた、あなたのホスティングプロバイダは、あなたのサーバーから直接電子メールの送信を送信することができます確信していますか?場合によっては、アウトバウンド電子メール用にリレーメールサーバーを提供することもあります。

+0

回答ありがとうございます。でも、テクニカルサポートに関するライブでは、リモートメールサーバーで私のIPをsocket_bindする必要があります。 stream_socket_clientを使用して、私はすでに接続を作成しています。または私は接続後にバインドできませんか?申し訳ありませんが多くの質問のために、私はネットワークの問題のマスターです。 –

+0

クライアントに接続するときにIP上で「バインド」しないでください。バインディングは、リスニング接続を作成し、ローカルインターフェイス/アドレスにバインド()して着信接続を待機するためのものです。送信クライアント接続では、宛先ホスト(IP)とポートを指定し、遠端サービスに接続します。より多くの情報を示すエラーやログがありますか? – ddubs

+0

SMTPメッセージを送信するのにこの "束縛"が必要ですか?それは意味をなさないか、ホストの技術サポートが間違っていますか? telnet接続の詳細: 450クライアントホストが拒否されました:ホスト名[213.134.162.98]を見つけられません 421 server.na.meエラー:タイムアウトを超過しました –

0

this answerを参照してください。そして、あなたはまた、一台のコンピュータでdiffenet IPアドレスからメールを送信することができますphpmailerのための私自身の実装のsmtpクラスのプラグインのために私に尋ねることができます。私のアカウントの連絡先を参照してください。

P.S.私の英語のために申し訳ありません

関連する問題