我使用perl和Mail::IMAPClient
lib。当我尝试使用
$message_id = $imap->parse_headers($msg,"Message-id")->{"Message-id"}->[0];
调试中的我可以看到BAD [PARSE] Syntax error while reading parenthesized list
这个袋子在这里描述mail.ru bag
我无法更改lib,因为其他邮件服务保留了RFC中的内容。我发送了报告(可能没有先报告),但我没有时间等待回应。什么是解决此问题的最佳解决方案?如果服务器是MAIL.RU,请再向parse_headers
发送一个参数
答案 0 :(得分:4)
这是一个困难的问题。 mail.ru服务器显然行为不正确。
我唯一的建议是尽量只依赖协议中最常用的位。在这种情况下,请尝试发出FETCH ENVELOPE
和FETCH BODYSTRUCTURE
而不是FETCH BODY.PEEK[HEADER.FIELDS (Message-ID)]
。后者并不常见,根本不是,但前者是协议中最常用的位,因此有理由希望mail.ru可能已经测试ENVELOPE
和{{ 1}}足以捕获任何会扰乱客户的错误。