无法使用imap zimbra选择“公用文件夹”和“导入的文件夹”

时间:2019-10-02 13:56:57

标签: python-3.x email imap zimbra

“公用文件夹” 是您与某人共享的文件夹,如果有人在其中添加电子邮件,您也将在此文件夹中接收该电子邮件。

“导入的文件夹” 是从另一个电子邮件帐户(例如Gmail)导入的文件夹。

我想做的只是使用 imap zimbra 上查看一些邮件,但是当文件夹是公用文件夹或导入文件夹时,它不起作用< / p>

mail = imaplib.IMAP4(user['serv'], user['port'])
mail.login(user['name'], user['passwd'])
mail.select("INBOX") #which is an imported folder
  

imaplib.IMAP4.error:SELECT命令错误:BAD [b'parse error:零长度内容”]

该文件夹不是空的,但似乎其中的内容已被隐藏

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:EXAMINE命令错误:BAD [b”解析错误:字符错误;应为'('但有'd'“]

对于“公用文件夹”,它只有在我不是创建该文件夹的人时才会发生,即使具有管理员权限(添加,删除电子邮件的权限)

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


编辑:

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

  

UnicodeEncodeError:'ascii'编解码器无法在位置1编码字符'\ xe9':序数不在范围内(128)

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

  

UnicodeEncodeError:'ascii'编解码器无法在位置1编码字符'\ xe9':序数不在范围内(128)

我也尝试过'utf-8'

  

imaplib.IMAP4.error:SELECT命令错误:BAD [b'parse错误:命令末尾多余字符']

1 个答案:

答案 0 :(得分:0)

for i in mail.list()[1]: l = i.decode().split(' "/" ') if l[1][1:len(l[1])-1] != "" and l[1][1:len(l[1])-1] not in banned: typ, data = mail.select('"{0}"'.format(l[1][1:len(l[1])-1]))

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