我想使用poplib从gmail帐户中获取所有邮件:https://docs.python.org/2/library/poplib.html
我面临的问题是,它没有给出正确的电子邮件数量(实际只给出了10%),而且它可以获取的电子邮件也是最初的。
现在我使用了与文档示例中给出的相同的代码。
import getpass, poplib
user= raw_input('Enter Username')
Mailbox = poplib.POP3_SSL('pop.googlemail.com', '995')
Mailbox.user(user)
Mailbox.pass_(getpass.getpass())
numMessages = len(Mailbox.list()[1])
print numMessages
for i in range(numMessages):
for msg in Mailbox.retr(i+1)[1]:
print msg
print Mailbox.stat()
Mailbox.quit()
请告诉我如何解决它。谢谢
答案 0 :(得分:0)
根据我过去的经验,我的完整收件箱中只有大约200到300封邮件。我的解决方案是切换到 imaplib ,这是一个示例代码:
import imaplib
conn= imaplib.IMAP4_SSL('imap.googlemail.com')
conn.login('your_account@gmail.com', 'your_password')
status, dummy= conn.select('INBOX')
if status != 'OK':
raise RuntimeError, "Failed to select inbox"
code, data= conn.search(None, CRITERION)
if code == 'OK':
msgid_list= data[0].split()
else:
raise RuntimeError, "Failed to get message IDs"
for msgid in msgid_list:
code, data= conn.fetch(msgid, '(RFC822)')
if code == 'OK':
PROCESS(data)
else:
raise RuntimeError, "could not retrieve msgid %r" % msgid
conn.close()
conn.logout()
对于CRITERION部分,请检查此链接,然后选择您喜欢的