Python Imaplib与GMail和UID

Python Imaplib与GMail和UID,python,gmail,imap,imaplib,Python,Gmail,Imap,Imaplib,我正在使用pythons ImapLib和range参数查询我的gmail收件箱,但是我返回的uid与我请求的uid有偏移。我的要求如下: M = imaplib.IMAP4_SSL('imap.gmail.com') M.login(USER, PASS) # Choose the inbox for finding mail M.select('INBOX') rv, data = M.uid("search", None, '29540:*') 这将返回一个UID,即29725 如果我从

我正在使用pythons ImapLib和range参数查询我的gmail收件箱,但是我返回的uid与我请求的uid有偏移。我的要求如下:

M = imaplib.IMAP4_SSL('imap.gmail.com')
M.login(USER, PASS)
# Choose the inbox for finding mail
M.select('INBOX')
rv, data = M.uid("search", None, '29540:*')
这将返回一个UID,即29725

如果我从开始的范围减去通过尝试和错误找到的421,我会得到从29540到29725的完整UID列表。我被难住了。这可能是因为它没有在这个范围内使用UID,并且在删除电子邮件时遇到了问题吗?

似乎M.UID只是指定返回值为UID,因此仍然需要指定发送的参数为UID,而不是消息ID。这就解决了这个问题:

rv, data = M.uid("search", None, 'UID', '29540:*')

rv,data=M.uidsearch,无,'uid29540:'

欢迎使用SO。虽然我们感谢您的回答,但如果它能在其他答案的基础上提供额外的价值,那就更好了。在这种情况下,您的答案不会提供额外的价值,因为另一个用户已经发布了该解决方案。如果之前的答案对你有帮助,你应该在你有足够的声誉后投票支持它。但是它有区别,上面的答案对我不起作用