0

メールを読む必要があり、メールの内容からいくつかのヘッダー情報を取得する必要があります。

そのために、私は次の方法でメールを読んでいます..

POP3Message objMsg = (POP3Message) instFolder.getMessage(totCount);   // line 1
String size = objMsg.getSize();                          // line 2
System.out.println("size :: "+size);                      // line 3 

Multipart multipartLevel_1 = (Multipart) objMsg.getContent();   // line 14 
int nmultiCount = multipartLevel_1.getCount();                  // line 15

3 行目で :: サイズ :: -1050 を取得しています

そして15行目で私は MessagingException を取得しています..

javax.mail.MessagingException: データソースからの入力ストリームがありません

負のサイズのメッセージが表示される理由を教えてください。メッセージのバイト数を返す必要があります

マルチパートオブジェクトを取得しているときに MessagingException を取得する理由

ありがとう アドバンス ラジェッシュ V

4

1 に答える 1

1

これが答えです - Googleは助けます:

Q: POP3 を使用しているときに getSize メソッドが負の数を返すのはなぜですか?

A: POP3 サーバーが壊れています。POP3 プロバイダーは、TOP コマンドを使用してメッセージのヘッダーをフェッチし、LIST コマンドを使用してメッセージ全体のサイズを決定します。次に、2 つの値を減算して、メッセージ本文のサイズを決定します。サーバーがメッセージ全体のサイズを誤って報告すると、負の数が返されることがあります。プロパティ「mail.pop3.disabletop」を「true」に設定して TOP コマンドの使用を無効にすることができますが、これによりメッセージ ヘッダーへのアクセスがメッセージ全体をフェッチすることになることに注意してください。

Oracle JavaMailAPI FAQから

于 2012-10-16T08:08:33.047 に答える