Imap以国际化语言选择文件夹

时间:2016-12-29 10:47:33

标签: python imap

在IMAP中,我正在尝试选择西班牙语和法语的文件夹,如下所示。我知道名为i18n的用户下存在一个文件夹 - Español和文件夹Français。但是我无法选择用于执行获取和搜索操作的文件夹。如果有人能帮助我,请告诉我。

telnet 0 <Port_num>

. login i18n i18n
. OK User i18n logged in
. select Español
. NO [NONEXISTENT] Mailbox does not exist
. select Français
. NO [NONEXISTENT] Mailbox does not exist

如果有一种方法可以使用python或perl执行操作也可以。

1 个答案:

答案 0 :(得分:1)

这是因为IMAP的一个奇怪之处是在文件夹名称中启用US-ASCII“encoding”之外的字符表示。简而言之,您必须使用经过修改的UTF-7编码,将&替换为Python 3.5.2+ (default, Dec 13 2016, 14:16:35) [GCC 6.2.1 20161124] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import codecs >>> codecs.encode("Español", encoding="utf-7").replace(b"+", b"&") b'Espa&APE-ol' >>> codecs.encode("Français", encoding="utf-7").replace(b"+", b"&") b'Fran&AOc-ais' 。您可以在定义IMAP协议的RFC 3501的section 5.1.3中进行更全面的解释。

我认为为您的用例获取文件夹名称的代码将类似于:

/app/image

我不得不承认,我对IMAP的工作并不多,所以可能有一些我不完全理解的规则。但这应该让你前进。