在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执行操作也可以。
答案 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的工作并不多,所以可能有一些我不完全理解的规则。但这应该让你前进。