通过IMAP确定附加到邮箱的邮件的uid

时间:2010-01-16 16:08:06

标签: imap

如何确定通过APPEND添加到邮箱的邮件的UID?通过STATUS我可以事先得到下一个值的预测,之后我可以SEARCH,但依赖于这些会引入竞争条件,因为这些命令之间可能添加了其他消息。

1 个答案:

答案 0 :(得分:6)

如果IMAP服务器支持UIDPLUS,您将始终收到APPENDUID响应。这将包含UID和UID的有效期。

来自RFC 4315的示例语法:

S: A003 OK [APPENDUID 38505 3955] APPEND completed

如果您的邮件服务器不支持UIDPLUS,则一旦您的追加操作完成,您将必须为UID执行FETCH。如果您确定在追加后没有添加任何消息,请在FETCH响应中查找最后一条消息。

FETCH 1:* (UID)

如果您担心其他消息被添加,您可以在APPEND之前保存消息ID之类的IMAP标头,然后在FETCH操作中使用它。