Python中imaplib.IMAP4_SSL().search方法的输出含义是什么?
关于IMAP搜索返回数字的解释
嘿,我来帮你搞清楚这个问题!先看看你用的代码和得到的输出:
你的代码:
import imaplib import time userName = "你的邮箱账号" passwd = "你的密码或应用专用密码" m = imaplib.IMAP4_SSL('imap.gmail.com') typ, accountDetails = m.login(userName, passwd) m.select("inbox") resp, data = m.search(None, "(ON {0})".format(time.strftime("%d-%b-%Y")), '(FROM "email")' ) print(resp) print(data)
输出结果:
OK [b'6391 6395']
那里面的6391和6395到底是什么?其实它们是邮箱中邮件的序列号(sequence numbers):
- 这些数字是IMAP服务器给收件箱里每一封邮件分配的唯一编号,用来快速定位邮件
- 你设置的搜索条件(指定日期+特定发件人)匹配到了两封邮件,所以返回了两个对应的序列号
- 你可以用这些序列号执行后续操作,比如获取邮件完整内容:
resp, mail_data = m.fetch('6391', '(RFC822)'),就能拿到编号6391那封邮件的全部数据
小提醒:序列号会随着邮件的删除、新增发生变化哦,如果你需要一个不会变动的标识来追踪邮件,可以改用UID(唯一标识符),把search换成uid('SEARCH', ...)就行~
内容的提问来源于stack exchange,提问作者Sorath
相关产品推荐
相关产品推荐

