Python imaplib 选择文件夹
Python imaplib selecting folders
我正在使用 Django 构建邮件客户端,并使用 imaplib 提取电子邮件。
到目前为止,我可以 select 收件箱文件夹,因为在每个 imap 服务器中它的名称都是 "INBOX"。但是当涉及到 select 垃圾邮件、已发送等其他文件夹时,我遇到了麻烦,因为它们的名称是基于帐户语言的。
例如,我的帐户设置为俄语并列出如下邮件:
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-"'
尽管帐户的语言是 select,我如何 select 文件夹?
如果我使用:
mail.select("&BBoEPgRABDcEOAQ9BDA-")
它可以工作,但我的邮件客户端像这样没用。
我决定拆分输出并按原样使用文件夹名称,使用它们的语言:
for i in mail.list()[1]:
l = i.decode().split(' "/" ')
print(l[0] + " = " + l[1])
我正在使用 Django 构建邮件客户端,并使用 imaplib 提取电子邮件。 到目前为止,我可以 select 收件箱文件夹,因为在每个 imap 服务器中它的名称都是 "INBOX"。但是当涉及到 select 垃圾邮件、已发送等其他文件夹时,我遇到了麻烦,因为它们的名称是基于帐户语言的。 例如,我的帐户设置为俄语并列出如下邮件:
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-"'
尽管帐户的语言是 select,我如何 select 文件夹? 如果我使用:
mail.select("&BBoEPgRABDcEOAQ9BDA-")
它可以工作,但我的邮件客户端像这样没用。
我决定拆分输出并按原样使用文件夹名称,使用它们的语言:
for i in mail.list()[1]:
l = i.decode().split(' "/" ')
print(l[0] + " = " + l[1])