1

私はNNTPメッセージを読むためにGNU javamailを使用しています:

public List<Message> getMessages(Newsgroup newsgroup) throws MessagingException   {
    LOG.fine("fetching.." + newsgroup);
    folder = root.getFolder(newsgroup.getNewsgroup());
    folder.open(Folder.READ_ONLY);
    List<Message> messages = Arrays.asList(folder.getMessages());
    LOG.fine("..fetched " + folder);
    return Collections.unmodifiableList(messages);
}

ただし、新しいメッセージまたは未読メッセージのみを送信する方法がわからないという点で、インデックス作成の問題があります。

フォルダー内のメッセージを反復処理し、ヘッダーを解析して、特定のしきい値を超える Xref 値を持つメッセージのみを返すことは確かに可能です。ヘッダーは次のようになります。

Xref: dur.bounceme.net gwene.com.economist:594

ただし、非常に大きなフォルダーに対してこれを行うのは少し面倒です。

私はこれが未知の問題ではないことを確かに見てきました.そして確かに私は車輪を再発明しています. 残念ながら、この場合、NNTP サーバー (この場合は localhost で実行されているLeafnode ) 上のメッセージをトリム (削除) する方法を判断できないため、私の車輪は丸くありません。

フォルダー全体を反復せずに、特定のしきい値を超えるメッセージを取得するにはどうすればよいですか? または、フォルダーからメッセージを削除するにはどうすればよいですか? また、削除された場合、leafnode はメッセージを削除しますか?

次のように簡単です。

message.setFlags(Flags.Flag.DELETED, true);???

別の方法として、GNU Mailman を試しています。

4

0 に答える 0