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 の両方が初めてで、それを機能させる方法を理解できません。可能な方法があればご協力お願いします