Files
mailgo/.workbuddy/memory/2026-06-01.md
T
2026-06-01 20:43:01 +08:00

26 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-06-01
## MailGo v3.1 增量更新
- **域名表单 TLS 端口自动切换**domain_form.html 增加 JS `togglePorts()`,勾选 TLS 自动切换 SMTP 25→465、IMAP 143→993、POP3 110→995
- **管理后台邮件可点击查看**admin/mails.html 邮件行改为可点击跳转 `/admin/mails/:id`
- **新增 AdminViewMail handler + admin/mail_view.html 模板**:管理员可查看任意用户邮件详情
- **新增 AdminDownloadAttachment handler + 路由**:管理员可下载任意用户附件(绕过归属校验)
- **AdminHandler 新增 storage 依赖**`NewAdminHandler(stores, attStorage)` 签名变更
## MailGo README 编写
- 创建 `README.md`,包含:功能特性、快速开始、完整配置参考、5 个常见配置场景(MySQL 切换、Unix Socket、TLS、OAuth2、LDAP)、端口速查、目录结构、Linux systemd 部署、DNS 配置、技术栈、默认账户
## MailGo 安装脚本
- 创建 `install.sh`,参考 portal_page 脚本适配 MailGo
- 服务名 mail_goGit 仓库 https://git.lmve.net/kevin/mailgo.git
- CGO_ENABLED=1mattn/go-sqlite3 依赖)
- 部署模板目录 internal/web/templates/ + admin/ 子目录
- systemd 增加 AmbientCapabilities=CAP_NET_BIND_SERVICE(绑定 25/465 等特权端口)
- 附件目录 /srv/mail_go/attachments/
## MailGo 邮件处理 Bug 修复
- **RFC 2047 地址解码**SMTP Data() 和 IMAP CreateMessage() 中 From/To/Cc 从 `header.Get()` 改为 `mailutil.FormatAddressList()`(内部用 `header.AddressList()` 自动解码 RFC 2047 编码的中文名等)
- **charset 转码**:新增 `internal/mailutil/codec.go``DecodeCharset()` 检测 Content-Type charset 参数,用 `golang.org/x/text/encoding/htmlindex` 将 gb2312 等非 UTF-8 编码转 UTF-8
- **原始邮件数据保留**:Message 模型新增 `RawData` 字段(`type:mediumtext`),SMTP/IMAP 接收时存原始邮件;IMAP `buildRawMessage()` 优先使用 RawData,降级才从字段重建
- **邮件显示修复**:HTML 邮件改用 `<iframe srcdoc sandbox>` 隔离渲染,防止 Outlook 等邮件的嵌套 `<html><body>` 标签破坏页面 DOM 结构导致内容不显示