[PHP-users 26612] Re: PEAR のPOP3でlogin部分でエラー

倉谷蓮(有限会社コットンシステム開発) ren @ ctnml.net
2005年 8月 25日 (木) 21:49:07 JST


倉谷です。

> マニュアルというのはこれのことでしょうか?
> 
>   http://pear.php.net/manual/ja/package.networking.net-pop3.login.php
> 
> 確かに「失敗時には FALSEを返します」とありますね。
> オリジナルの英文ドキュメントもそうなっているので、これはドキュメント
> が追いついていない例ですね…。

そう、これです。
そして298行目というエラーについ目がいってしまいlogin部分の返しのチェックまで見過ごしていたため混乱をきたしましたがとりあえず解決してホッとしました。

> PEARのコードは、PEARが持つエラー処理の仕組みにしたがっている事が
> 多いです。それは、成功時には true やなにか意味のある値を返し、失敗時
> には PEAR_Error オブジェクトを返す、というものです。Net_POP3::login()
> も今見たらそのようになっていました。なので
> 
>   $pop =& new Net_POP3;
>   $pop->connect($hostname);
>   $err = $pop->login($user, $passwd);
>   if (PEAR::isError($err)) {
>       die('ログイン失敗');
>   }
> 
> のように PEAR::isError を用いて正否の判断をするのが正しいやり方です。
isErrorですね。
確かに、最初からこうしておけばこんな混乱しなかったと思うと甘かったです。
今後はそういう部分にも気を付けます。

>  dovecot は使った事ないので分かりません。:-)
まだLinux自体使い始めて間もないもので、Fedoraというと定番がdovecotのような感じになっているため使っているんですが他の受信サーバーとしてはどんなものだとうまくいきますか?
すでにPHPではない範囲になっていますが、dovecot,saslあたりのキーワードで探してもいまいち調べきれず困っています。



PHP-users メーリングリストの案内