国际化语言的 Imap select 文件夹
Imap select folder in internationalized languages
在 IMAP 中,我正在尝试 select 如下所示的西班牙语和法语文件夹。我知道文件夹 - Español
和文件夹 Français
存在于名为 i18n 的用户下。但是无法 select 用于执行提取和搜索操作的文件夹。如果有人可以帮助我,请告诉我。
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来操作也行
这是因为 IMAP 的一个怪癖可以在文件夹名称中启用 US-ASCII“编码”之外的字符表示。简而言之,您必须使用定义 IMAP 协议的 RFC 3501 的修改 UTF-7 encoding replacing the character +
by &
. You can have a more thorough explanation in 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 的使用不多,所以可能有些规则我不完全理解。但这应该能让你继续。
在 IMAP 中,我正在尝试 select 如下所示的西班牙语和法语文件夹。我知道文件夹 - Español
和文件夹 Français
存在于名为 i18n 的用户下。但是无法 select 用于执行提取和搜索操作的文件夹。如果有人可以帮助我,请告诉我。
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来操作也行
这是因为 IMAP 的一个怪癖可以在文件夹名称中启用 US-ASCII“编码”之外的字符表示。简而言之,您必须使用定义 IMAP 协议的 RFC 3501 的修改 UTF-7 encoding replacing the character +
by &
. You can have a more thorough explanation in 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 的使用不多,所以可能有些规则我不完全理解。但这应该能让你继续。