开发版

你正在浏览 dev 分支的文档,内容可能包含尚未发布的功能,最新正式版为 v1.4.0。

查看正式版文档 →
Skip to content

邮件翻译 ​

Magicmail 内置邮件翻译功能,基于 MyMemory 翻译服务,可在邮件详情页一键将正文翻译为你的目标语言。

工作原理 ​

翻译由后端代理完成(而非前端直连第三方),带来以下好处:

  • 隐藏你的 MyMemory 凭据(邮箱 / Key),不会暴露在前端
  • 统一处理配额、错误与缓存,避免重复消耗额度
  • 源语言自动检测(Autodetect),无需手动选择
前端「翻译」按钮
  → POST /api/v1/mails/:id/translate
  → 校验归属用户 + 读取用户翻译设置
  → 后端代理调用 MyMemory(Autodetect|目标语言)
  → 返回译文(并列展示,不替换原文)

配置翻译服务 ​

翻译凭据与目标语言按用户独立配置,互不挤占。

  1. 进入 设置 → 翻译设置
  2. 填写以下参数:
字段说明
目标语言翻译后正文显示的语言(如简体中文、英语、日语等)
MyMemory 邮箱用于提升免费额度至 5000 词/天
MyMemory Key填写后额度不限(留空表示不修改已保存的 Key)
  1. 点击 保存翻译设置

凭据安全

  • Key 以 AES-256-GCM 加密存储,明文绝不回传前端——保存后输入框留空即代表「保持不变」。
  • 接口仅返回「是否已配置邮箱 / Key」的布尔标记,不会泄露你的凭据内容。

使用翻译 ​

  1. 在邮件列表中选择任意一封邮件
  2. 点击工具栏的 翻译 按钮
  3. 正文下方会展开「译文」卡片,显示:
    • 检测到的原文语言
    • 目标语言
    • 翻译后的正文(可点击「收起」关闭)
  4. 译文与原文并列展示,不会替换原始邮件内容

配额与限制 ​

MyMemory 有两套相互独立的限制,请注意区分:

限制阈值说明
单条请求长度500 字符 / 次单次 q 参数上限,长邮件由后端自动分块翻译
每日总额度匿名 500 词/天/IP;填邮箱 5000 词/天;填 Key 不限共享 IP 的匿名额度极易耗尽

提升额度

未配置任何凭据时走匿名额度(500 词/天/IP,多人共享同一出口 IP 时尤其容易耗尽)。建议在 设置 → 翻译设置 中至少填写 MyMemory 邮箱,或填写 Key 以获得不限额度。

隐私说明 ​

翻译时,邮件正文会被发送至第三方 MyMemory(Translated)服务器。请勿用于包含高度敏感信息的邮件。该功能默认需用户主动配置凭据并点击翻译(opt-in),未配置时不会向第三方发送任何内容。

长邮件与分块 ​

为同时满足「单条 500 字符」限制与「完整翻译」,后端会:

  • 按段落 / 行将正文切分为多个 ≤ 500 字符的块
  • 逐块调用翻译接口,再合并为完整译文
  • 对翻译结果做内存缓存(7 天 TTL),避免重复打开同一封邮件重复消耗额度

相关接口 ​

方法路径说明
GET/api/v1/settings/translation获取当前用户的翻译设置
PUT/api/v1/settings/translation保存翻译设置(email / key 留空 = 保持不变)
POST/api/v1/translate翻译任意文本
POST/api/v1/mails/:id/translate翻译指定邮件正文(校验归属用户)

网络要求

运行 Magicmail 的服务器需放行到 api.mymemory.translated.net:443 的出站 HTTPS 访问,否则翻译功能不可用。

开发版文档(dev 分支)· 基于 AGPLv3 协议开源