java如何检测IMAPMessage不是电子邮件,而是任务或日历项
我通过IMAP使用javamail访问Lotus和Groupwise,递归地访问所有文件夹并处理我找到的电子邮件。但是在像Tasklist和Calendar这样的文件夹中(这些文件夹来自Groupwise,但我记得Lotus也有类似的东西),我将项目作为IMAPMessage的实例放在那里,因此它们就像邮件一样被处理
我知道这些项目通过IMAP协议被公开为邮件(无论是设计还是错误),但我只想处理正确的邮件。有办法做到这一点吗?到目前为止,我已经摒弃了以下方法:
- 确保邮件具有邮件id,至少在Groupwise日历项目中具有该id李>
- 按名称忽略文件夹(如日历和任务列表):不完全正确,因为用户可以在这些文件夹中移动邮件李>
我正在寻找的是一些到目前为止我错过的IMAP api调用,或者这些行中的某些东西
# 1 楼答案
我不熟悉javamail,但我熟悉IMAP协议(RFC 3501),我会尝试以下方法:
IMAP命令示例:
IMAP服务器响应示例:
“…数据…”的内容是内容类型标题:
IMAP命令示例:
IMAP服务器响应示例:
(添加大量空白以提高可读性)
查看RFC3501的6.4.5和7.4.2部分,了解有关FETCH命令及其响应格式的更多信息。不幸的是,我不知道如何使用javamail实现这一点