0

私は zend フレームワークを使用していますが、最近私のコードでひどい問題が発生しました。実際、私は電子メール用のウェブフロントを開発しており、ユーザーはメール サーバーの詳細を入力し、私のシステムを介して電子メールを確認できます。

問題は、メールサーバーに接続しようとすると、システムが時々停止し、代わりにインデックスページ、つまり実行中のページをダウンロードするように求められることです-もちろん、空のページになりますが、それは想定されていません起こっていること。

私はいくつかのチェックを行い 、接続関数のZend_Mail_Protocol_Imap クラスでコードが死んでいることがわかりました。

$this->_socket = fsockopen($host, $port, $errno, $errstr, self::TIMEOUT_CONNECTION);

投稿されたリンクの94行目。

ここで何をすればいいですか 少なくともここで何が起こったのかを知るために、チェックを設定するにはどうすればよいですか :(

ここで私が見ているものをスクリーンショットから確認できます: 代替テキスト http://img714.imageshack.us/img714/6558/problemh.jpg

編集==================

私が実際に実行しているコード[ここでライブラリを使用しているだけです]は次のとおりです。

$mailConfig = array('host' => $current_dept->incoming_server,
'port'=>$current_dept->incoming_port,                       'folder'=>$mbox_name,
'user' =>$current_dept->email,
'password' =>$current_dept->email_psd);


$mailConfig['ssl'] ='ssl';

try{
    if($mail)
        unset($mail);

    $mail = new Zend_Mail_Storage_Imap($mailConfig);


    }catch (Zend_Mail_Exception $e) {
        var_dump($e);
        exit;
    }

fsockopen は Zend_mail_protocol_Imap クラスにあり、これは zend_mail_storage_imap クラスのコンストラクター内で呼び出されます。

try catch ブロックに囲まれているにもかかわらず、try catch ブロックを実行していません。

さらに、ダウンロードを求めるファイルは、実行中の php ファイルと同じ名前の空のファイルです。

編集 ==========================

私は問題を発見しました-何らかの理由で例外がスローされており、そのネストが非常に深いです。しかし、私が理解できないのは、何らかの形式のエラーメッセージなどを出力する代わりに、ファイルのダウンロードを促すこの動作です。

4

1 に答える 1

0

まず、ダウンロードを強制された PHP ファイルの実際の内容を確認します。

また、zend コードは問題ではないと思います。

実行するコントローラーでこれを$???->connect();試してください

try
{
    $mail->connect();
}cache(Zend_Mail_Protocol_Exception $Exception)
{
     die("Debug: " . $Exception->toString());
}

それが影響を与えるかどうかを確認するには?

于 2010-07-14T08:49:41.317 に答える