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

pys*_*ake 7 imap

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

Vas*_*asu 6

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

RFC 4315的示例语法:

S: A003 OK [APPENDUID 38505 3955] APPEND completed
Run Code Online (Sandbox Code Playgroud)

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

FETCH 1:* (UID)
Run Code Online (Sandbox Code Playgroud)

如果您担心添加其他消息,可以在之前保存IMAP标头(如Message-ID),然后APPENDFETCH操作中使用它.