Python 3.x 无法使用imap zimbra选择“公用文件夹”和“导入文件夹”

Python 3.x 无法使用imap zimbra选择“公用文件夹”和“导入文件夹”,python-3.x,email,imap,zimbra,Python 3.x,Email,Imap,Zimbra,“公用文件夹”是您与他人共享的文件夹,如果有人在其中添加电子邮件,您也会在该文件夹中收到它 “导入文件夹”是指从其他电子邮件帐户(例如Gmail)导入的文件夹 我想做的是使用imap查看zimbra上的一些邮件,但是当文件夹是公共文件夹或导入的文件夹时,它就不起作用了 mail = imaplib.IMAP4(user['serv'], user['port']) mail.login(user['name'], user['passwd']) mail.select("INBOX") #whi

“公用文件夹”是您与他人共享的文件夹,如果有人在其中添加电子邮件,您也会在该文件夹中收到它

“导入文件夹”是指从其他电子邮件帐户(例如Gmail)导入的文件夹

我想做的是使用imap查看zimbra上的一些邮件,但是当文件夹是公共文件夹或导入的文件夹时,它就不起作用了

mail = imaplib.IMAP4(user['serv'], user['port'])
mail.login(user['name'], user['passwd'])
mail.select("INBOX") #which is an imported folder
imaplib.IMAP4.error:选择命令错误:错误[b'解析错误:零长度内容']

文件夹不是空的,但内容似乎被隐藏了

mail = imaplib.IMAP4(user['serv'], user['port'])
mail.login(user['name'], user['passwd'])
mail.select("Shared mailbox") #which is a public folder
imaplib.IMAP4.error:检查命令错误:错误[bparse错误:错误字符;应为,但得到了“d”]

在“公用文件夹”的情况下,它只发生在我不是创建它的人时,即使管理员有权添加、删除电子邮件

所以我想知道是否有人知道如何解决这些问题

编辑:

当文件夹的名称不是unidecode时,我发现另一个崩溃

UnicodeEncodeError:“ascii”编解码器无法对位置1中的字符“\xe9”进行编码:序号不在范围128中

我不知道这里需要什么编码,所以我尝试了“ascii”

UnicodeEncodeError:“ascii”编解码器无法对位置1中的字符“\xe9”进行编码:序号不在范围128中

我也试过“utf-8”

imaplib.IMAP4.error:选择命令错误:错误[b'解析错误:命令结尾字符过多']

对于邮件中的i。列表[1]: l=i.decode.split'/' 如果l[1][1:lenl[1]-1]!=和l[1][1:lenl[1]-1]不在禁止范围内: typ,data=mail。选择“{0}”。格式[1][1:lenl[1]-1]


这解决了所有问题,不知道为什么我们需要将电子邮件的名称放在简单引号和双引号之间,但它确实有效

需要手动引用空格的文件夹:“共享邮箱”。有没有办法不手动执行此操作?否。使用列表获取文件夹的实际名称。IMAP文件夹中没有非ASCII。它们是经过修改的UTF-7编码。如果您愿意,您可以随时添加引号,它们不会造成伤害。