我只需要使用 poplib 从 gmail 收件箱下载电子邮件。不幸的是,我没有看到任何单独选择收件箱的选项,并且 poplib 也为我提供了来自已发送项目的电子邮件。
如何仅从收件箱中选择电子邮件?
我不想使用任何 gmail 特定的库。
POP3 没有“文件夹”的概念。如果 gmail 向您显示“已发送”和“已接收”邮件,那么您真的别无选择,只能接收所有这些电子邮件。
也许您最好使用 IMAP4 而不是 POP3。Python 具有可与 gmail 的 IMAP4 服务器一起使用的库。
我假设您已启用对您的 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()
或类似的东西。
此 Java 代码建议您可以选择特定的“文件夹”进行下载,即使使用 POP3 也是如此。同样,这是使用 Java,而不是 Python,所以 YMMV。