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

KOYAMA Tetsuji koyama @ hoge.org
2005年 8月 25日 (木) 19:49:43 JST


  小山です。

On 8/25/05, 倉谷蓮(有限会社コットンシステム開発) <ren @ ctnml.net>
wrote:
> 中村さんの指摘のとおりCAPAをしてみました。

> POP3のコマンドは全然今まで勉強したことがないのでまたあとでゆっくり調
> べてみることにしますが、とりあえず売ってみたところ
> 
> +OK
> CAPA
> TOP
> USER
> UIDL
> RESP-CODES
> STLS
> SASL
> .
> 
> となり、これは表示がない、ということでしょうか。

> これは具体的にどういった原因となるのでしょうか?

POP3 の CAPA コマンドは

	RFC 2499: POP3 Extension Mechanism
	http://www.faqs.org/rfcs/rfc2449.html

で規定されています。この文書の 6 章の例にあるように

         Examples:
             C: CAPA
             S: +OK Capability list follows
             S: TOP
             S: USER
             S: SASL CRAM-MD5 KERBEROS_V4
             S: RESP-CODES
             S: LOGIN-DELAY 900
             S: PIPELINING
             S: EXPIRE 60
             S: UIDL
             S: IMPLEMENTATION Shlemazle-Plotz-v302
             S: .

通常 SASL タグにはサポートする認証メカニズムが

             SASL CRAM-MD5 KERBEROS_V4

のように記述されます。Net/POP3.php の該当部分

        case 'sasl':
            $this->_capability['sasl'] = preg_split('/\s+/', $matches[3]);

は、その認証メカニズムを表す文字列を取り出しています。

ところが倉谷さんの設定した POP サーバは

> SASL

と何のオプションもつけずに SASL タグを返しているので、解析に失敗してい
るわけです。

  そもそも POP サーバに関して、何というソフトをどのような設定で構築し
たかという情報が全くないので、設定に失敗しているらしい以上のこと、他の
人には分からないでしょう。

> プロバイダーで成功したものでもユーザー名、パスワードが間違っていても
> ログイン成功という結果を返します。PEARの元のソースがそういう仕様とい
> うことになればどうしようもないですよね…。

  Net_POP3 は PEAR でもそれなりに使用実績のあるパッケージなので、おそ
らく使い方が間違えているのでしょう。

-- 
    小山哲志@ビート・クラフト
    koyama @ beatcraft.com
    koyama @ hoge.org



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