• 締切済み

SocketでPOPサーバーから受けた情報をWhile文で受け取れない

SocketでPOP3サーバーにアクセスして、コマンドを 送った際の戻り値を変数に代入したいのですが、 下記の方法でうまくいきません。 While(<Socket>) { push(@test,$_); } print"@test"; telnetを使ってそのPOP3サーバーにアクセスすると 正常にアクセスしてログイン後メール内容を見る ことができます。While文がうまく動作していない みたいなのですが・・・。 ブラウザがずっとアクセスしてて画面が表示されません。 WinXP, Apache, Perl5.8.4 よろしくお願い致します。

みんなの回答

  • cojirou
  • ベストアンサー率50% (59/117)
回答No.3

もう見ていらっしゃらないかもしれませんが…。↓のURLは、 #1のURLのプログラムを参考にしたスクリプトです。 print S "USER $StrUsr\r\n"; print S "PASS $StrPsw\r\n"; の後に、 print <S> ."\n"; を付け加えると動きました。 しつこく失礼致しました。

参考URL:
http://www.kurumi.sakura.ne.jp/~kumicyou/Cnt/MemAll/ClnPop.html
  • cojirou
  • ベストアンサー率50% (59/117)
回答No.2

再度失礼致します。 私はperlでPOP3クライアントを作ったことがないので、 見当違いの意見だったようですね。申し訳ありません。 ご質問文の内容だけでは他の可能性を考えるのが難しいので、 よろしければ、スクリプトの他の部分と現在の動作結果を お教えいただけませんか? 私の勉強のためのお願いに近いので、お時間がありましたらで構いません。 ちなみに当方では以下のURLにあるスクリプトは動作確認できました。

参考URL:
http://joe.ash.or.jp/pc/netprog/
  • cojirou
  • ベストアンサー率50% (59/117)
回答No.1

以下のURLを見ると、while文のループの中にループを抜ける条件があるので、 もしかしたらソレが足りないなどでしょうか…。 他にも、「perl POP3 socket」で検索すると参考になりそうなサイトがありましたので ご参照ください。 ご参考までに。

参考URL:
http://x68000.q-e-d.net/~68user/net/pop3-2.html
jeti
質問者

お礼

ありがとうございます。そのサイトも見たのですが、条件を入れてもうまく動作しませんでした。 あきらめてPHPでやってみます。 ありがとうございました。

関連するQ&A