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