imapすべてのメールのインデックスを作成するために、javamail API を使用して gmail ボックスを読み込んでいます。デフォルトのフォルダー以外のすべてのフォルダーを読み取りたい。以下のコード セグメントは、gmail のデフォルト フォルダのみを提供します。
javax.mail.Folder[] folders = store.getDefaultFolder().list("*");
for (javax.mail.Folder fold : folders) {
if ((fold.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) {
System.out.println(fold.getFullName() + ": " + fold.getMessageCount());
}
}
上記のコードを使用すると表示されないラベルがいくつかあります。gmail のデフォルト フォルダ以外のすべてのユーザー定義ラベルを取得する方法はありますか。また、メールに複数のラベルがあり、そのメールのラベルを取得できる方法はありますか。これは、同じメールが 2 回読まれるのを避けるためです。メールが としてマークされている場合important、それはINBOX、ALL MAILSおよびIMPORTANTフォルダーに入るからです。したがって、上記のコードによれば、INBOXメールが最初に読み取られます。そのフォルダー内のメールを既に読んでいる場合は、他のフォルダーで同じメールを読むことを避け、そのようなラベルを取得しINBOXたいIMPORTANTそのメールが既読または未読としてマークされているかどうかに関係なく。私は javamail と imap の両方が初めてで、それを機能させる方法を理解できません。可能な方法があればご協力お願いします