Python imaplib选择文件夹

时间:2017-05-28 18:51:21

标签: python imaplib

我正在使用Django构建邮件客户端,并使用imaplib提取电子邮件。 到目前为止,我可以在每个imap服务器中选择收件箱文件夹,因为它的名字是" INBOX"。但是,当选择其他文件夹,如垃圾邮件,已发送和其他文件夹,我有麻烦,因为他们的名字来自帐户语言。 例如,我的帐户设置为俄语并列出这样的邮件:

mail = imaplib.IMAP4_SSL(IMAP)
mail.login(USERNAME, PASSWORD)

for i in mail.list()[1]:
    print(i)

给我以下输出(utf-7):

b'(\\Inbox) "/" "INBOX"'
b'(\\Spam) "/" "&BCEEPwQwBDw-"'
b'(\\Sent) "/" "&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-"'
b'(\\Drafts) "/" "&BCcENQRABD0EPgQyBDgEOgQ4-"'
b'(\\Trash) "/" "&BBoEPgRABDcEOAQ9BDA-"'

尽管使用了帐户选择的语言,我如何选择文件夹? 如果我使用:

mail.select("&BBoEPgRABDcEOAQ9BDA-")

它可以工作,但我的邮件客户端没用这个。

1 个答案:

答案 0 :(得分:3)

我决定拆分输出并按原样使用文件夹名称:

for i in mail.list()[1]:
    l = i.decode().split(' "/" ')
    print(l[0] + " = " + l[1])