dsh
3a4636c2c5
fix(imap): FETCH BODY/BODYSTRUCTURE 解析失败时服务器 panic 导致客户端只能取到部分邮件
根因:backendutil.FetchBodyStructure 对部分消息返回 nil(典型场景:
- message/rfc822 附件为 base64 编码时库内不解码,把编码文本当嵌套
消息头解析报错(转发邮件场景,如 .mail-monitor/forward.py 转发)
- multipart 缺少结束边界(截断)时 extended 解析报错)
buildIMAPMessage 未处理 nil,go-imap 格式化 FETCH 响应时在 send()
协程 nil 指针解引用 panic,连接中断——Thunderbird 只取到崩溃前已
发送的几封邮件,手机客户端一直卡在"正在获取邮件"。
修复:
- BodyStructure 解析失败时降级为 text/plain 单段结构,杜绝 nil
- FetchBodySection 返回 nil 时跳过该 section,不再写入 nil literal
- 新增集成测试 TestFetchBodyMalformedMIME 覆盖两类畸形 MIME
2026-08-19 08:52:39 -04:00
..
2026-06-01 19:46:51 +08:00
2026-08-16 23:39:43 -04:00
2026-08-19 19:56:04 +08:00
2026-08-19 20:30:06 +08:00
2026-06-01 19:46:51 +08:00
2026-08-19 08:52:39 -04:00
2026-06-02 20:46:59 +08:00
2026-08-19 19:23:27 +08:00
2026-08-19 19:56:04 +08:00
2026-08-19 19:56:04 +08:00
2026-08-19 16:45:21 +08:00
2026-08-19 20:30:06 +08:00
2026-08-16 23:39:43 -04:00
2026-08-19 20:30:06 +08:00