2.1 KiB
2.1 KiB
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_go,Git 仓库 https://git.lmve.net/kevin/mailgo.git
- CGO_ENABLED=1(mattn/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 接收时存原始邮件;IMAPbuildRawMessage()优先使用 RawData,降级才从字段重建 - 邮件显示修复:HTML 邮件改用
<iframe srcdoc sandbox>隔离渲染,防止 Outlook 等邮件的嵌套<html><body>标签破坏页面 DOM 结构导致内容不显示