IMAP(gmail?)将错误的UID返回给FETCH请求

时间:2017-10-25 15:40:03

标签: gmail imap

我目前正在使用Python中的IMAP,并注意到以下内容(使用文件夹中的单个和多个消息进行测试):

  1. 选择文件夹," A"并在
  2. 中获取消息的UID
  3. 移至另一个文件夹," B",选择并获取新的UID
  4. 使用" B" UID,将邮件移回文件夹" A"
  5. 重新选择文件夹" A"并获取新的UID - 正如预期的那样,它为消息提供了新的UID
  6. 最后,使用步骤4中的新UID发出FETCH
  7. 问题在于,在第5步中命令执行正常 - 但是服务器将不同的 UID返回到请求中指定的UID(通常,但并非总是如此,差异为1)!例如:

    LEFC12 UID FETCH 65 (FLAGS...)])
    DEBUG:imapclient.imaplib:< * 3 FETCH (UID 64 ... {47}
    

    多条消息也会发生同样的情况 - 所有这些消息的偏移量相同。

    如果我让进程休眠20秒(如完全空闲20秒,如果它每秒重试它永远不会回来OK) - 获取返回正确的UID罚款。我不确定这是一个gmail还是IMAP的东西,任何指针/帮助将不胜感激!

    编辑:这里是上述序列的所有imapclient日志:https://gist.github.com/Fizzadar/37cb1fa808ffb6594326bba293f6daab。我注意到这一点并不一致 - 如果你重复上述步骤两次,总是失败,但只是一次它失败(~50%,让我相信这是一个gmail特定的问题)。

0 个答案:

没有答案