0

我编写了一个从 POP3 服务器检索邮件的程序。它的一位用户遇到以下问题......

当我的程序连接到它时,他的邮件服务器会发出问候:

+OK Lotus Notes POP3 server version X2.0 ready <PrintableCharacters.UnprintableCharacters>

尖括号中的部分是对APOP授权的所谓挑战。质询(以及 POP3 协议中的所有其他字符串)通常仅包含 ASCII 字符。但这次挑战由两部分组成 - 第二部分包含不可打印的字符。模式如下:首先是 0x5,然后是一些非 ASCII 字符。这看起来像是Lotus Notes 开发人员引入的特殊编码

当我按原样提取挑战并将其用于 APOP 身份验证时,服务器会拒绝。

在仔细阅读了我在 LMBSC 上找到的所有内容后,我扣除了以下内容。0x5 是表示所谓“第 5 组”字符的前缀。每个字符实际上都是 Win-1251 字符,但前面加了 0x5。

有了这个,我只是剥离了所有 0x5,只留下合法的 ASCII 和不可打印的 Win-1251,并将它们传递给通常的 APOP 身份验证算法。但是服务器拒绝。

这是用 Win-1251 字符解码 LMBSC 的正确方法还是服务器端的问题?

4

1 回答 1

1

我检查了一些 domino 服务器(7.x、8.x),并没有在服务器问候语中找到 APOP 时间戳。然后我用谷歌搜索发现:POP3 authentication failure using APOP commands

Domino POP 服务器似乎不支持 APOP,但 6.5.5 之前的版本无论如何都会在问候语中显示时间戳。

于 2009-07-25T16:31:15.470 回答