Python imaplib 选择文件夹

Posted

技术标签:

【中文标题】Python imaplib 选择文件夹【英文标题】:Python imaplib selecting folders 【发布时间】:2017-10-29 01:49:28 【问题描述】:

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

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】:

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

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

【讨论】:

以上是关于Python imaplib 选择文件夹的主要内容,如果未能解决你的问题,请参考以下文章

python和imaplib:如何在给定电子邮件ID的情况下下载附件文件

Imaplib:如何从 Gmail 中删除电子邮件?

使用 Python 和 imaplib 在 GMail 中移动电子邮件

Python 3:通过 uid (imaplib) 将电子邮件移至垃圾箱

具有多个条件的python imaplib搜索

python收取邮件(腾讯企业邮箱)