如何使用javax.mail在outlook上创建自定义标志?

时间:2013-12-27 22:28:17

标签: java outlook javax.mail

我使用javax.mail api:

为gmail创建了自定义标志
Flags scannedFlag = new Flags("scanned");

因此,我可以在文件夹中搜索那些没有扫描标记的邮件。

FlagTerm fterm = new FlagTerm(scannedFlag, false);      
IMAPFolder folder.open(Folder.READ_WRITE);
Message[] messages = folder.search(fterm );

我可以为所有消息分配自定义标志:

for (int i = 0; i < messages.length; i++) {
    Message msg = messages[i];
    msg.setFlags(scannedFlag, true);
}

这种方法在gmail上运行得很好,但是当我用outlook做这个时,它确实没用。当我尝试在msg上对scanFlag进行asign时,它会给我以下错误:

javax.mail.MessagingException: A7 BAD Invalid "flag-list": Contains unsupported flag or  closing character missing.;
  nested exception is:
    com.sun.mail.iap.BadCommandException: A7 BAD Invalid "flag-list": Contains unsupported flag or closing character missing.
    at com.sun.mail.imap.IMAPMessage.setFlags(IMAPMessage.java:921)
    at com.tegik.App.main(App.java:54)
Caused by: com.sun.mail.iap.BadCommandException: A7 BAD Invalid "flag-list": Contains unsupported flag or closing character missing.
    at com.sun.mail.iap.Protocol.handleResult(Protocol.java:353)
    at com.sun.mail.imap.protocol.IMAPProtocol.storeFlags(IMAPProtocol.java:1603)
    at com.sun.mail.imap.protocol.IMAPProtocol.storeFlags(IMAPProtocol.java:1588)
    at com.sun.mail.imap.IMAPMessage.setFlags(IMAPMessage.java:917)

如何使用我在gmail上使用的类似方法在Outlook上创建自定义标志?

1 个答案:

答案 0 :(得分:0)

可能是你的邮件服务器不支持自定义标志?可以通过获取CAPABILITIES来分析它。另外,你是什么意思 这种方法在gmail上运行得很好,但是当我用outlook 执行此操作时 我想你连接到不同的帐户(邮件服务器)一个支持自定义标志,其他不是?