Python 仅通过poplib从收件箱中选择邮件

Python 仅通过poplib从收件箱中选择邮件,python,gmail,pop3,poplib,Python,Gmail,Pop3,Poplib,我只需要使用poplib从gmail收件箱下载电子邮件。不幸的是,我看不到单独选择收件箱的选项,poplib也给我发送邮件的选项 如何仅从收件箱中选择电子邮件 我不想使用任何特定于gmail的库。POP3没有“文件夹”的概念。如果gmail向你显示“已发送”和“已接收”的邮件,那么你真的别无选择,只能接收所有这些邮件 也许您最好使用IMAP4而不是POP3。Python的库可以与gmail的IMAP4服务器配合使用。此Java代码建议您可以选择一个特定的“文件夹”进行下载,即使使用POP3也是如

我只需要使用poplib从gmail收件箱下载电子邮件。不幸的是,我看不到单独选择收件箱的选项,poplib也给我发送邮件的选项

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


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

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


也许您最好使用IMAP4而不是POP3。Python的库可以与gmail的IMAP4服务器配合使用。

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


我假设您已经启用了对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()
或者类似的事情。

@Zachary:有帮助吗?