如何解释 Lotus Notes POP3 服务器发送的时间戳中的不可打印字符?
我编写了一个从 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 的正确方法还是服务器端存在问题?
I wrote a program for retrieving mail from POP3 servers. One of its users encounters the following problem...
His mail server when my program connects to it issues a greeting:
+OK Lotus Notes POP3 server version X2.0 ready <PrintableCharacters.UnprintableCharacters>
The part in angle brackets is a so-called challenge for the APOP authorization. The challenge (and all other strings in POP3 protocol) typically only contains ASCII characters. But this time the challenge is composed of two parts - the second one contains non-printable characters. The pattern is the following: first 0x5, then some non-ASCII character. This looks like special encoding introduced by Lotus Notes developers.
When I extract the challenge as-is and use it for APOP authentication the server declines.
After carefully reading all I could find on LMBSC I deducted the following. The 0x5 is a prefix to indicate so-called "Group 5" characters. Each character is in fact a Win-1251 character but is prepended by 0x5.
With that I just stripped away all 0x5's only leaving legal ASCII and non-printable Win-1251 and passed those into usual APOP authentication algorithm. However the server declines.
Is that the right way to decode LMBSC with Win-1251 characters or is that a problem on the server side?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我检查了一些多米诺骨牌服务器(7.x、8.x),并没有在服务器问候语中找到 APOP 时间戳。 然后我用 Google 搜索并发现了这个:使用 APOP 命令的 POP3 身份验证失败
Domino POP 服务器似乎不支持 APOP,但 6.5.5 之前的版本无论如何都会在问候语中显示时间戳。
I checked some domino servers (7.x, 8.x), and didn't find a APOP timestamp in the server greeting. Then I Googled and found this: POP3 authentication failure using APOP commands
It seems like the Domino POP server doesn't support APOP, but versions prior to 6.5.5 presents a timestamp in the greeting anyway.