【问题标题】:IMAP error: BAD [PARSE] Syntax error while reading parenthesized listIMAP 错误:读取带括号的列表时出现 BAD [PARSE] 语法错误
【发布时间】:2014-12-14 01:34:19
【问题描述】:

我使用 perl 和 Mail::IMAPClient lib。当我尝试使用

从 MAIL.RU 获取标题时
$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 发送 1 个参数?

【问题讨论】:

  • 获取Message-Id: 的方法有很多。你的程序在做什么?为什么需要Message-Id:?答案可能有助于选择最佳替代方案。

标签: perl imap


【解决方案1】:

这是一个困难的问题。 mail.ru 服务器的行为明显不正确。

我唯一的建议是尽量只依赖协议中最常用的位。在这种情况下,尝试发出FETCH ENVELOPEFETCH BODYSTRUCTURE 而不是FETCH BODY.PEEK[HEADER.FIELDS (Message-ID)]。后者并不少见,一点也没有,但前者是协议中最常用的部分,因此有理由希望 mail.ru 可能已经测试了 ENVELOPEBODYSTRUCTURE 足以捕获任何可能的错误打扰您的客户。

祝你好运。

【讨论】:

  • 这只是我,或者FETCH ENVELOPE 的工作速度比FETCH BODY 慢?
  • 那是哪个BODY? BODYSTRUCTURE 的旧形式还是 BODY[...] 的缩写?无论哪种方式,ENVELOPE 在大多数/所有服务器上都应该与其他服务器一样快。
猜你喜欢
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
相关资源
最近更新 更多