以下は、メールの取得と表示に使用しているスニペットです。
String email = "";
jEditorPane1.setContentType("text/html");
for( int i=0 ; i<msgs.length ; i++ ) {
senSub += InternetAddress.toString(msgs[i].getFrom()) + "\n" + msgs[i].getSubject() + "\n" + "\n";
Object o = msgs[i].getContent();
if( o instanceof String) {
email += o.toString();
System.out.println("FIRST IF");
} else if( o instanceof Multipart ) {
Multipart mp = (Multipart)o;
int bodyParts = mp.getCount();
System.out.println("BODY PARTS---->" + bodyParts ); // There are 2 body parts
for(int j = 0 ; j < bodyParts ; j++) {
BodyPart bodyPart = mp.getBodyPart(j);
Object o2 = bodyPart.getContent();
if( o2 instanceof String ) {
email += "--THIS IS THE " + j + " BODY PART" + "-- " + o2.toString() + "--THIS IS THE END OF FIRST PART--";
} else if( o2 instanceof Multipart ) {
Multipart mp2 = (Multipart)o2;
System.out.println("NESTED MULTIPART");
int count2 = mp2.getCount();
for(int k = 0 ; k < count2 ; k++) {
BodyPart bodyPart1 = mp2.getBodyPart(k);
}
}
}
}
}
Font font = new Font("Trebuchet MS" , Font.BOLD , 15);
jTextArea6.setFont(font);
status = false;
jTextArea6.setText(senSub);
jEditorPane1.setText(email); // set the email on the editor pane
しかし、それはいくつかの奇妙な動作を示しています。
ここに出力があります:(2つの部分で)
パート2
元のメールは次のとおりです。
出力について説明します。(first body part
マルチパート メッセージの)にplain message
+links of images
が貼り付けられます。2 番目の部分には元のメールの画像が貼り付けられます。というセリフでThe days of need.....anywhere 2回繰り返した。そして、第二部は決して終わりません。どうしてこれなの?
受信トレイには 7 件のメッセージがありますが、表示されるメールは 1 件だけです。メールを取得するコードが間違っていることは間違いありません。 しかし、どこが間違っているのかわかりません。_ステートメントに対応する正しい結果が得られたことを伝えましょう
senSub += InternetAddress.toString(msgs[i].getFrom()) + "\n" + msgs[i].getSubject() + "\n";
結果は 7 件のサブジェクトと 7 件の送信者です
コードの何が問題なのか教えてください。リンクをリンクとして貼り付け、テキストをテキストとして貼り付け、画像を画像として貼り付け、ランダムではないようにしたいのです。