当天继续处理 Nextcloud Mail 的邮箱同步故障,通过数据库日志将剩余错误定位到地址显示名中的非法 UTF-8 字节,安装净化补丁后同步成功。随后撤销无关补丁,并在最终代码状态下再次同步通过,完成协议、缓存、服务健康及日志清理检查。修复与升级验收要求已补入技能和运维文档,发信能力仍未验证。

本文按北京时间整理 win-0o0ooo 本机保存的 2026-09-13 历史会话,仅记录当天新增工作。

定位并修复邮件地址显示名的 UTF-8 错误

继续排查 Nextcloud Mail 的邮箱同步失败。首次重试仍以退出码 1 结束,随后从 PostgreSQL 日志确认,非法字节位于邮件收件人表插入语句的第三个参数 label,而非此前怀疑的 References 字段。新增地址显示名净化补丁及安装脚本,在 Address::getLabel() 中处理非法 UTF-8 字节;完成远端安装、生成原文件备份,并通过 PHP 语法检查。

安装后账户 B 同步返回退出码 0。此前针对 References 的处理未解决故障,不能作为有效修复;本次数据库语句与成功重试共同支持地址显示名这一定位。

撤销无关补丁并验证最终运行状态

根据数据库定位结果,恢复远端 ImapMessageFetcher.php 原版,删除本地与远端针对 References 的补丁及安装脚本;随后对撤销后的最终状态重新执行账户 B 同步。最终保留非空 IMAP 客户端 ID 与地址显示名净化两项兼容修复,移除了缺乏根因证据的额外改动。

恢复后的源文件通过 PHP 语法检查;最终同步明确返回退出码 0,证明成功结果不依赖已删除的 References 补丁。同步仍提示 PHP 内存上限低于建议值,当天没有调整该配置。

邮箱协议、缓存与服务健康验收

临时采集 IMAP 协议日志,核对已有客户端 ID 补丁的实际行为,并检查邮件缓存、服务健康、网页响应及近期错误;验收后关闭调试并清理协议日志。协议记录显示发送了非空客户端 ID,并继续执行邮箱选择命令。确认 Mail 版本为 5.11.5,两个账户分别已有两千余封缓存邮件;两个保留补丁的安装脚本重复执行均识别为已安装。

Nextcloud 状态为 healthy、重启数为 0,定时任务容器保持运行,status.php 返回 200;邮件页面未登录返回 401。检查窗口内 Unsafe Login 与数据库 UTF-8 错误计数均为 0,最终协议日志数量为 0。账户 A 的完整同步成功由当日助手总结报告,所给当日工具回执直接确认了其缓存状态;账户 B 则有成功同步回执。发信能力未验收,仍按仅收信记录。

沉淀邮箱兼容修复与升级验收流程

更新邮箱账户同步技能、服务商配置参考及运维文档,补充非空 IMAP ID、按数据库表和绑定参数定位坏字节、升级后重应用补丁以及调试日志清理等要求。形成包含维护脚本、部署位置、备份与回滚说明的修复记录,并比对了本地与远端补丁、安装脚本的校验和。文档明确保留仅收信的验收边界。

首次本地校验因缺少 Python 未实际完成,随后改用远端 Python,获得技能验证通过的回执;同时执行 Python 编译、JSON 解析、PHP 和 shell 语法及差异检查,未见新增错误,仅有换行转换提示。记录中未见提交或发布成果。

会话关联与手动续接

以下命令在保存这些会话的 win-0o0ooo 机器上手动执行。项目名称和路径已作公开脱敏;准确目录保留在本机对应月份的工作归档或原会话中。

添加 163 邮箱账户

项目:个人服务器与邮件服务配置。

会话 ID:=01a0906d-5a85-7172-9c63-e17d9f9afbcf= 。

codex resume 01a0906d-5a85-7172-9c63-e17d9f9afbcf