0

私は Pear Mail でこんなばかげた問題を抱えています:

私はそのようなスクリプトを持っています:

$params['host'] = $config['smtp_host'];
        $params['port'] = $config['smtp_port'];
        $params['auth'] = $config['smtp_auth'];
        $params['username'] = $config['smtp_username'];
        $params['password'] = $config['smtp_password'];
        $params['timeout'] = 10;

        $headers['From'] = 'Administrator <admin@admin.com>';
        $headers['To'] = '"'. $to .'" <' . $to . '>';
        $headers['Subject'] = "Bla";
        $headers['Content-Type'] = "text/plain; charset=\"UTF-8\"";
        $headers['Content-Transfer-Encoding'] = "8bit";
        $mail_object = & Mail::factory('smtp', $params);
        $send = $mail_object->send($to, $headers, "hi");
        if(PEAR::isError($send))
            echo $send->getMessage();

また、タイムアウトを設定しても、スクリプトが約 60 ~ 120 秒間ハングします。エラーも何もありません。メールは送信されません。デバッグする方法がわかりません。/何が間違っているのかわかりません。変数 $to は、このコードが内部に持つ関数に渡されます。私はオブジェクトが返されていることを知っています。

何が問題なのかを確認するにはどうすればよいですか?

前もって感謝します :)

4

1 に答える 1

0
  1. デバッグ用のメールは 1 つだけ送信するようにしてください。
  2. xdebugをインストールしてアクティブ化する
  3. スクリプトの先頭に、xdebug_start_trace('/tmp/foo.xt')
  4. スクリプトを実行します
  5. テキスト エディタで関数トレース ファイルを確認します。最後の行には、ハングするコマンドが表示されます。

ハングしているのはネットワーク接続だと思います。Wireshark を実行して、どのパケットが送信されるか、および応答が得られるかどうかを確認できます。

于 2013-02-27T09:35:07.000 に答える