【问题标题】:EXCHANGE IMAP JAVA SORT交换 IMAP JAVA 排序
【发布时间】:2013-07-08 17:47:29
【问题描述】:

我们正在使用 java 邮件从 imap 上的 ms exchange 获取邮件

如果没有人碰任何东西,一切都很好......但是如果 Outlook 中的用户将邮件从收件箱目录中的另一个目录移动,这将成为新的顶级邮件,其实际到达日期可能是几年前

作为一种解决方法,我们正在尝试获取已按交换排序的电子邮件(通常我们以创建消息 ID 顺序获取电子邮件,但刚刚移动的旧邮件的消息 ID 比刚到达的电子邮件的消息 ID 新)

我们正在使用这段代码来尝试

SortTerm std[]={SortTerm.DATE};

    try {
        messages = folder.getSortedMessages(std);   
    } catch (Exception e) {
        logger.error(e.toString());
    }

但我们得到了

javax.mail.MessagingException:不支持排序; 嵌套异常是: com.sun.mail.iap.BadCommandException:不支持排序

任何帮助将不胜感激在此先感谢 问候

斯特凡诺·布塔雷利

【问题讨论】:

  • 消息的 INTERNALDATE 是否被重置?如果不是(不是 ID/UID),则应按 INTERNALDATE 排序,如果确实重置,则应按 Date: 标题。
  • 您好,谢谢您的回答。我们没有 INTERNALDATE 进行排序,这里是我们必须排序的所有内容: public static final com.sun.mail.imap.SortTerm ARRIVAL public static final com.sun.mail.imap.SortTerm CC public static final com.sun。 mail.imap.SortTerm DATE public static final com.sun.mail.imap.SortTerm FROM public static final com.sun.mail.imap.SortTerm REVERSE public static final com.sun.mail.imap.SortTerm SIZE public static final com。 sun.mail.imap.SortTerm SUBJECT public static final com.sun.mail.imap.SortTerm TO 可能我没有理解你的意思?再见

标签: sorting imap jakarta-mail exchange-server


【解决方案1】:

看起来 Exchange 不支持 IMAP SORT 扩展。您可能需要在客户端中对消息进行排序。

(请注意,邮箱的自然顺序是邮件添加到邮箱的顺序,通常是到达顺序,除了您所看到的情况。)

【讨论】:

  • 感谢您的回复,我们实际上是在客户端进行排序,但在上述情况下会出错。我们无法将文件夹收件箱中的所有邮件排序然后显示前 30 条(抱歉我忘了说我们正在开发一个网络邮件客户端),它应该很慢。因此,我们得到最后 30 封邮件并仅对它们进行排序,但是如果用户将收件箱文件夹中的旧电子邮件从另一个具有较新 ID 的文件夹中移出,即使它很旧,我们也会在前 30 封邮件中得到它。斯特凡诺
  • 好吧,如果你没有考虑所有的消息,显然你没有正确地进行排序! :-) 是的,这在客户端更昂贵,这就是发明 IMAP SORT 扩展的原因。可惜 Exchange 不支持它。
猜你喜欢
  • 2013-04-30
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多