Python imaplib选择文件夹

发布于 2021-01-29 16:35:30

我正在使用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-")

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

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我决定拆分输出,并使用它们出现的语言原样使用文件夹名称:

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看