我只需要使用poplib从gmail收件箱下载电子邮件。很遗憾,我没有看到任何选项可以单独选择收件箱,poplib也会从发送的邮件中提供电子邮件。
如何仅从收件箱中选择电子邮件?
我不想使用任何gmail特定的库。
答案 0 :(得分:4)
POP3没有“文件夹”的概念。如果gmail向您显示“已发送”和“已接收”邮件,那么您实际上没有任何选择,只能接收所有该电子邮件。
也许你最好不要使用IMAP4而不是POP3。 Python拥有可与gmail的IMAP4服务器配合使用的库。
答案 1 :(得分:3)
我假设您已启用对您的GMail帐户的POP3 / IMAP访问权限。
这是示例代码:
import imaplib
conn= imaplib.IMAP4_SSL('imap.googlemail.com')
conn.login('yourusername', 'yourpassword')
code, dummy= conn.select('INBOX')
if code != 'OK':
raise RuntimeError, "Failed to select inbox"
code, data= self.conn.search(None, ALL)
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)')
# you can also use '(RFC822.HEADER)' only for headers
if code == 'OK':
pass # your code here
else:
raise RuntimeError, "could not retrieve msgid %r" % msgid
conn.close()
conn.logout()
或类似的东西。
答案 2 :(得分:2)
此Java代码建议您可以选择要下载的特定“文件夹”,即使使用POP3也是如此。同样,这是使用Java,而不是Python,所以YMMV。