如何确定通过APPEND
添加到邮箱的邮件的UID?通过STATUS
我可以事先得到下一个值的预测,之后我可以SEARCH
,但依赖于这些会引入竞争条件,因为这些命令之间可能添加了其他消息。
答案 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
操作中使用它。