我只需要使用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。

如何使用Java从GMail下载消息(博客文章讨论在本地将内容推送到Lucene搜索引擎)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top