PHP プログラムで POP 受信をしようとしています。

環境は Windows XP、PHP 5、Net_POP3 は最新版です。
プログラムは以下のような感じです。(文字数制限のため省略)

<?php
require_once('pear/Net/POP3.php');
$account = array(
'host' => 'example.com',
'port' => '110',
'username' => "example@example.com",
'password' => "password",
);
$pop3 =& new Net_POP3();
$res = $pop3->connect($account['host'], $account['port']);
$res = $pop3->login($account['username'], $account['password'],true);
var_dump($res);
?>

ここで login メソッドの結果を出力すると以下のように出ます。

object(PEAR_Error)#4 (8) {
["error_message_prefix"]=>
string(0) ""
["mode"]=>
int(1)
["level"]=>
int(1024)
["code"]=>
int(-1)
["message"]=>
string(0) ""
["userinfo"]=>
NULL
["backtrace"]=>
array(8) {
[0]=>
 (以下省略)

上記の message のところに何も書かれていないので何が悪いかが分かりません。
故意にパスワードを間違えても同じように message は空でした。

これだけの情報ではアドバイスはできないのは重々承知ではありますが、
デバッグの際の目の付け所などがあれば教えて頂きたく思います。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/06/09 19:19:01
  • 終了:2009/06/11 10:41:21

ベストアンサー

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/06/09 20:04:14

ポイント70pt

login メソッドで指定している POPサーバへのログイン手順は合っていますか?

APOP や POP before SMTP ということはありませんか?

id:snaa1d_1

ありがとうございます。第三引数がtrueなのでAPOPは試しているかと思います。

また、メーラーでは特にAPOPの指定はしていませんので問題なさそうです。

普段メーラーを使っている限り POP before SMTP だと思いますが

SMTP ではなく POP のプログラムなので特に特別な処理は必要がないかと思っていました。。そのあたりも調べてみますね。いつもありがとうございます。

2009/06/09 22:42:42

その他の回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/06/09 20:04:14ここでベストアンサー

ポイント70pt

login メソッドで指定している POPサーバへのログイン手順は合っていますか?

APOP や POP before SMTP ということはありませんか?

id:snaa1d_1

ありがとうございます。第三引数がtrueなのでAPOPは試しているかと思います。

また、メーラーでは特にAPOPの指定はしていませんので問題なさそうです。

普段メーラーを使っている限り POP before SMTP だと思いますが

SMTP ではなく POP のプログラムなので特に特別な処理は必要がないかと思っていました。。そのあたりも調べてみますね。いつもありがとうございます。

2009/06/09 22:42:42
id:QuestR2 No.2

QuestR2回答回数435ベストアンサー獲得回数132009/06/09 20:42:52

ポイント50pt

第三引数に認証方法を指定。

http://ml.php.gr.jp/pipermail/php-users/2005-August/027113.html

id:snaa1d_1

ありがとうございます!

http://peardoc.xole.net/package.networking.net-pop3.login.html

を見る限り第3引数は boolean かと思っていたのですが・・一応試してみます。

また、このMLの記事を読んだ結論として POP3.php を書き換えるというのが

ありましたがそちらは既に試してみました。

2009/06/09 22:38:28
id:sphire No.3

sphire回答回数115ベストアンサー獲得回数122009/06/09 23:36:27

ポイント45pt

書かれている内容だけでは判断できないので、一応書いてみよう。

「$pop3->connect() は成功していますか?」

http://pear.php.net/manual/ja/package.networking.net-pop3.connec...

id:snaa1d_1

一応でも大丈夫です。こちらは結果を var_dump して成功している事を確認しましたので大丈夫でした。

2009/06/11 10:39:27
  • id:pahoo
    PO{サーバの認証方式が POP before SMTP だとすると、loginメソッドの第三引数は "USER" にするといいと思います。
  • id:snaa1d_1
    ありがとうございます。USERでもうまくいきませんでした。。
    が・・結果としては接続先のレンタルサーバーを変えることでうまくいきました。
    折角なので真っ向からチャレンジしたかったのですが
    時間の関係でサーバーをかえる方向で逃げてしまいました。。すいません。。
  • id:pahoo
    セキュリティの関係で、POPサーバへの接続を制限しているのかもしれませんね。
    ま、結果オーライということで、解決して良かったです。
    いるか賞をありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません