2016-12-29 22 views
0

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

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

这是因为IMAP的一个怪癖,使得在文件夹名称中US-ASCII“编码”以外的字符表示成为可能。简而言之,您必须使用修改的UTF-7编码替换字符+&。您可以在定义IMAP协议的RFC 3501的section 5.1.3中有更详尽的解释。

我觉得代码,让您的文件夹的名称为您的使用情况是这样的:

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所以有可能的规则我不完全明白。但这应该让你走。

+0

这是一个了不起的帮助!谢谢 –