我的任务是从GMail通过POP3(无IMAP)检索一组消息。 我可以做RETR MSG#,禁止删除。
Fetchmail和procmail一直在尝试下载同一组新的未读消息(这部分转到ServerFault)。是否有专门设计的标题来区分以前读取的消息?或者我应该对邮件正文/主题/日期进行校验和?
答案 0 :(得分:4)
POP3协议不支持读/看类别的标志。有些服务器支持像X-Seen
这样的非标准标头,它就像一个读取标志,你必须使用TOP
来获取消息的标题并查看它是否已被设置(以确定是否已设置)它甚至在那里)。
应该由客户端来覆盖POP3中的读取标志,但好消息是你不需要做校验和,只需使用UIDL
,它会给你一个非列表更改,收件箱中的消息的唯一ID,或者如果使用消息#调用,将为您提供邮箱中该位置的邮件的唯一ID(因为如果其他客户端正在访问,您无法保证邮箱中的邮件位置并且可能正在删除)。
答案 1 :(得分:-1)
尝试使用message-id
控制邮件Message message ;
....
String messageId = message.getHeader("message-id")[0];