IMap列表名称和Exchange Server引用

时间:2014-01-23 19:51:14

标签: python email exchange-server imap

我有一个简单的python程序来索引Exchange服务器上的电子邮件,并发现它返回的列表名称不是完全相同的格式。似乎任何带有任何特殊字符的名称(特别是空白)都是双引号,而其他名称则不是。

(\Marked \HasNoChildren) "/" "Mail/_DE Courses/_cs435-ADL"
(\Marked \HasNoChildren) "/"  Mail/_etc

上次我几年前运行这个程序时,它没有这个问题。我看到的所有其他示例都显示引用的每个名称字符串。这是非标准的,众所周知的吗? (我只是做了一个正则表达式来纠正这个问题。)

2 个答案:

答案 0 :(得分:4)

如果名称包含特殊字符,则服务器必须引用。如果名称是普通的,服务器可能引用或不引用,它的选择。我很容易相信你三年前使用的版本与今天部署的版本做出了不同的选择。

答案 1 :(得分:0)

在IMAP请求或响应中,可以将项目表示为字符串(引用的种类)或原子(没有引号)。使用原子格式(未加引号的字符串)通常就足够了。但是,当存在空格时,选择不带引号的字符串会导致字符串被解释为两个单独的字符串(空格之前的部分,以及之后的部分)。由于客户端和服务器通常知道在响应中期望预定义数量的以空格分隔的项目,因此执行此操作将导致解析错误。