2

我只需要使用 poplib 从 gmail 收件箱下载电子邮件。不幸的是,我没有看到任何单独选择收件箱的选项,并且 poplib 也为我提供了来自已发送项目的电子邮件。

如何仅从收件箱中选择电子邮件?

我不想使用任何 gmail 特定的库。

4

3 回答 3

4

POP3 没有“文件夹”的概念。如果 gmail 向您显示“已发送”和“已接收”邮件,那么您真的别无选择,只能接收所有这些电子邮件。

也许您最好使用 IMAP4 而不是 POP3。Python 具有可与 gmail 的 IMAP4 服务器一起使用的库。

于 2009-03-09T06:09:32.663 回答
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()

或类似的东西。

于 2009-03-09T18:09:55.630 回答
2

此 Java 代码建议您可以选择特定的“文件夹”进行下载,即使使用 POP3 也是如此。同样,这是使用 Java,而不是 Python,所以 YMMV。

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

于 2009-03-09T06:18:44.483 回答