代码之家  ›  专栏  ›  技术社区  ›  Avrom

JavaMail和Exchange Server 2007有问题-命令参数错误

  •  1
  • Avrom  · 技术社区  · 15 年前

    在我正在开发的应用程序中,有一个函数使用javamail通过IMAP与邮件服务器连接。我们的一个客户机具有以下堆栈跟踪:

    javax.mail.MessagingException: A13 BAD Command Argument Error. 11; 
    nested exception is: 
    com.sun.mail.iap.BadCommandException: A13 BAD Command Argument Error. 11 
    at com.sun.mail.imap.IMAPMessage.setFlags(IMAPMessage.java:847) 
    at javax.mail.Message.setFlag(Message.java:565) ...
    

    现在,它想做的是:

    messages[i].setFlag(Flags.Flag.RECENT, false);
    

    在哪里? messages[i] 是一个 javax.mail.Message .

    现在,我们的任何使用Exchange Server 2003的客户机都从未发生过此错误,而且由于此客户机使用的是Exchange Server 2007,因此我认为它与此有关(bug?). 我还确保他们将其更新为最新的Service Pack和Rollup更新(本文撰写时的Service Pack 1更新8)和最新的Javamail(本文撰写时的1.4.2),并且没有任何影响。 我的问题是,这是我必须等待微软解决的问题吗? 有我可以雇佣的解决方案吗?

    对于记录,我将最近的标志设置为假的原因是,给定的消息不会在第二次传递中再次被处理(即,它只处理最近的或新的消息)。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Dave Smith    15 年前

    我对API的理解 Flags.Flag.RECENT 指示它是客户端应用程序的只读。文件夹实现应在“此文件夹的消息是新的”时设置它。因此,除非您正在编写文件夹实现,否则不应修改此标志。

    这就让人想知道为什么你的其他客户没有得到错误。也许在某些情况下它被当作一个noop?也许这个客户的文件夹有什么特别的地方?可能是共享文件夹,或者用户也有读取权限的文件夹?我没有能力思考交换信息商店的奥秘。