【发布时间】:2019-10-02 13:56:57
【问题描述】:
“公共文件夹”是您与他人共享的文件夹,如果有人在其中添加电子邮件,您也会在此文件夹中收到它。
“导入的文件夹”是从其他电子邮件帐户(例如 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: SELECT 命令错误: BAD [b'parse error: zero-length content']
文件夹不是空的,但内容似乎被某种方式隐藏了
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' codec can't encode character '\xe9' in position 1: ordinal not in range(128)
我不知道这里需要什么编码,所以我尝试了'ascii'
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 1: ordinal not in range(128)
我也试过'utf-8'
imaplib.IMAP4.error: SELECT command error: BAD [b'parse error: extra characters at end of command']
【问题讨论】:
-
有空格的文件夹需要手动引用:'"共享邮箱"'。
-
有什么方法可以不用手动完成吗?
-
没有。使用 LIST 获取文件夹的实际名称。 IMAP 文件夹中没有非 ASCII。它们是(修改的)UTF-7 编码的。
-
如果您愿意,您可以随时添加引号,它们不会造成伤害。
标签: python-3.x email imap zimbra