我想知道Python中是否存在用于IMAP4 UTF-7文件夹路径编码的“正式”函数/库。
在imapInstance.list()
中,我得到以下路径IMAP UTF-7编码:
'(\\HasNoChildren) "." "[Mails].Test&AOk-"',
如果我执行以下编码:
(u"[Mails].Testé").encode('utf-7')
我得到:
'[Mails].Test+AOk-'
它是UTF-7,但不是IMAP UTF-7编码的。Test+AOk-
而不是Test&AOk-
我需要一个官方函数或库来获取IMAP UTF-7编码版本。
我编写了一个非常简单的IMAP UTF7 python 3实现,它遵循了规范,而且似乎可以工作。(“foo\rbar\n\n\n\r\r”和许多其他往返行程,“&BdAF6QXkBdQ-”、“Test&Co”、“[Mails].Test&AOk-”和“~peter/mail/&ZeVnLIqe-/&U,BTFw-”按预期操作)。
考虑到这段代码的简单性,我将其设置在公共域中,因此可以随意使用它。
IMAPClient包具有使用IMAP修改过的UTF-7进行编码和解码的功能。查看IMAPClient.imap_utf7模块。这个模块可以单独使用,也可以只使用IMAPClient,它可以透明地处理文件夹名称的编码和解码。
项目的主页是:http://imapclient.freshfoo.com/
示例代码:
imapclient实现有点崩溃:
结果:
编辑:
经过一些研究,我在MailPile中找到了一个实现,它在这个测试中的往返编码不会失败。如果你感兴趣的话,我也把它移植到Python3号:https://github.com/MarechJ/py3_imap_utf7
相关问题 更多 >
编程相关推荐