我需要编写一个 IMAP 代码来解析这个命令的结果:
tag FETCH 1,2,3,4 ALL
大多数时候,响应是这样的
* 1 FETCH (FLAGS ... ) ENVELOPE ("time" "subject" ... )\r\n
* 2 FETCH (FLAGS ... ) ENVELOPE ("time" "subject" ... )\r\n
....
tag OK FETCH COMPLETE
依此类推,每个信封都以星号 UID 开头,以 CRLF 结尾,所以我可以使用 CRLF 作为解析点。
问题是一些服务器正在使用 IMAP 字符串文字响应我,即 {150}\r\n .... 由于 \r\n 是字符串文字的一部分,我不能再将其用作解析点。
一个想法是使用 * UID 作为解析点,但如果有人碰巧将其用作电子邮件主题或诸如此类的东西,它会破坏算法,所以我认为这样做是个坏主意。
有人可以告诉我如何在不使用 CRLF 的情况下有效地解析这种类型的响应吗?非常感谢你。
编辑 - 希望改进问题,我试图根据解析点将每个单独的 ENVELOPE 解析为它自己的字符串,我需要一个解析点来标识一个字符串的开头和另一个字符串的结尾。