我正在使用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 :(得分:3)
我决定拆分输出并按原样使用文件夹名称:
for i in mail.list()[1]:
l = i.decode().split(' "/" ')
print(l[0] + " = " + l[1])