私は、Javaのデフォルトのpop3実装を使用していて、実際のフラグの状態を読み込むのに問題があります。'seen'フラグを取得しても動作しないようです。
ここで(省略)コードです:
Store store = null;
Folder folder = null;
try
{
Session mailSession = Session.getInstance(new Properties(), null);
store = mailSession.getStore("pop3");
store.connect(host, addr, pwd);
folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
for (Message msg : folder.getMessages())
{
if (msg.isSet(Flag.SEEN))
continue;
LOG.debug("processing email titled '" + msg.getSubject()
+ "' from '" + msg.getFrom()[0] + "'");
... do some stuff
msg.setFlag(Flag.SEEN, true);
}
}
finally
{
if (folder != null)
folder.close(true);
if (store != null)
store.close();
}
問題がmsg.isSet(Flag.SEEN)
への呼び出しがあっても、常に、falseを返しますので、上記のコードが実行されるたびに、同じメッセージ(それらのすべて)が処理されていることであるが、私は前の反復でそれをtrueに設定しましたが。
ウェブメールクライアントは、フラグが設定されていることを反映しています(タイトルは太字から通常のフォントに変更されます)。
誰かが間違っていることを知っていますか?
ありがとう、p。