获取最新消息的javax.mail.search替代方案

时间:2012-08-26 10:39:27

标签: java email javamail postfix-mta dovecot

除了javax.mail.search.SentDateTerm之外,在特定的Movemail文件夹中获取最新消息的好方法是什么?

看起来doveadm是the way to go,虽然我找不到Java驱动程序。但是,我宁愿呆在postfix中,也不是非常热衷于使用POP3(或IMAP),尽管integrated Ubuntu stack已经缓解了配置麻烦。 javax.mail.search的任何替代方法?

我在javax.mail.search.SentDateTerm中看到的问题是它需要迭代文件夹,对于大文件夹,这可能会有问题。在这种情况下,我只想通过发送日期获得“最新”消息。

我正在使用Thunderbird来读取POP3,但是使用的是mailutils类型文件夹,并希望弹出顶部消息,就像是stack一样。真的,就像你在Thunderbird看到的那样,最新消息在最顶层。

我认为使用文件系统对邮件进行排序可能是可行的:

root@dur:~# 
root@dur:~# head /var/mail/root 
From root@dur.bounceme.net  Sun Aug 26 00:41:11 2012
Return-Path: <root@dur.bounceme.net>
X-Original-To: root@dur
Delivered-To: root@dur
Received: by dur.bounceme.net (Postfix, from userid 0)
    id AB90A1827DF; Sun, 26 Aug 2012 00:41:11 -0700 (PDT)
To: <thufir@dur>
Cc: <root@dur>
Subject: ping 12:40
X-Mailer: mail (GNU Mailutils 2.2)
root@dur:~# 

Java中有哪些东西可以抓住最顶层的消息?但是,看起来很脆弱而且通常只是一个坏主意,在可能有更好的选择时直接使用文件系统。也许Java可以利用一些mailutils或postfix钩子?现有的API?

示例命令head /var/mail/root的一个问题是它抓取了顶部消息,而我是在特定文件夹中的顶部消息之后。

我已经切换到POP3的dovecot,但我正在寻找一种与弹出的消息进行交互的好方法。这是probably the best approach,但是如何在没有迭代整个文件夹的情况下获取最高或最新消息

另请参阅:https://stackoverflow.com/questions/12129820/dovecot-doveadm-java-api

1 个答案:

答案 0 :(得分:1)

如果您真的想通过发送日期获得最新消息,则必须查看所有消息。如果您想通过收到日期获得最新消息,则更容易 - 这是收件箱中的最后一条消息。