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

2.1 KiB
Raw Blame History

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.goDecodeCharset() 检测 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 结构导致内容不显示