返回资讯中心
外部精选
软件工程
#开发者实时流

GentleMail 开源邮件服务:一键部署,约十分钟在自有域名建好收件箱

来源标题:How to Setup Gentlemail

GentleMail 可一键部署,约十分钟即可在自有域名上获得可用收件箱。软件本身免费,唯一开销是 Cloudflare Workers Paid 套餐每月 5 美元,覆盖所有已连接域名下的每个邮箱。域名 DNS 需由 Cloudflare 托管,同一账号可添加任意数量域名。

Hacker News 最新themx052026/11/15 · 今天13 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

一键部署,大约十分钟就能在你自己的域名上拥有一个可用的收件箱。GentleMail 是免费的。唯一的费用是 Cloudflare 的 Workers Paid 套餐,每月 5 美元,覆盖你连接的所有域名上的所有邮箱。

它的 DNS 必须由 Cloudflare 管理。你可以在同一个账户下添加任意数量的域名。

每个账户每月 5 美元。它解锁向任意地址发送邮件的功能,并覆盖 GentleMail 使用的所有资源。

部署按钮会把你的 GentleMail 副本放进你自己的一个仓库,之后每次 push 都会重新部署。

第一次部署会完成所有设置。之后,大部分步骤都是一次性工作,而添加一个邮箱、一个用户或一整个域名,在 Admin 里只需一分钟。

Cloudflare 会把 GentleMail 复制到你 GitHub 账户下的一个新仓库,为消息和用户创建 D1 数据库,为附件创建 R2 存储桶,向你索取一个 setup token(任意长随机字符串),然后构建并部署。无需手动配置任何东西。

如果你 fork 或 clone 了整个仓库,并自己连接到了 Workers Builds?应用位于 apps/mail,而不是根目录。在你的 Worker 中,打开 Settings → Builds → Advanced settings,把 Root directory 设为 apps/mail,构建命令设为 npm run build,部署命令设为 npm run deploy(它会先应用数据库迁移,然后部署)。部署按钮不需要这些:它会把 apps/mail 复制到你新仓库的根目录。

更想用终端?clone 仓库,然后在 apps/mail 中运行:npx wrangler secret put SETUP_TOKEN,然后 npm run build && npm run deploy。Wrangler 会在首次部署时创建数据库和存储桶。

打开新 Worker 地址(以 workers.dev 结尾)上的 /setup,输入 setup token,然后创建管理员账户。setup 页面只能使用一次。

在 Admin 中,选择 New domain。GentleMail 会检查其 DNS 并显示以下命令。然后,在 Cloudflare 控制台中,把该域名的 Email Routing catch-all 设置为 Send to a Worker,并选择你的 GentleMail Worker。

npx wrangler email sending enable yourco.com npx wrangler email routing enable yourco.com

针对特定地址的规则(例如转发到 Gmail)优先级高于 catch-all。

可选。在类似 mail.yourco.com 的主机名上提供应用:在你的 Worker 的 Settings、Domains & Routes 下添加它,或者在 wrangler.jsonc 中取消 routes 的注释。把 PUBLIC_URL 设置为该地址,这样 webhook 链接就是绝对地址。

在任意已连接的域名上添加任意数量的邮箱,添加用户,并选择谁可以打开哪个邮箱。管理员可以看到全部。

在 API & webhooks 下,为每个程序创建一个 key,并把 webhook 指向你的 agent。设置一次之后,每条新消息都会从那时起送达它。

你的仓库由你随意修改。要获取新版本,从 GentleMail 拉取并 push:push 即部署。部署按钮把应用放在了仓库根目录,所以 Git 需要知道它在上游位于 apps/mail。

git remote add upstream https://github.com/Softwaiz/gentlemail git pull -X subtree=apps/mail upstream main && git push

仅第一次时,在 pull 时加上 --allow-unrelated-histories。Git 随后会把自你部署以来更改过的每个文件列为冲突:保留 GentleMail 的版本(git checkout --theirs .),然后恢复你的 wrangler.jsonc 以及你自己改过的任何文件(git checkout --ours wrangler.jsonc),然后提交。之后每次 pull 都会正常合并。

如果你改为 fork 或 clone 了整个仓库?那就是普通的 git pull upstream main && git push。

Cloudflare 的标价。一个十人团队每月发送 5,000 封邮件,费用约为 5.70 美元。

不需要。GentleMail 是你部署到自己账户的代码。它通过你自己 Worker 的 bindings 与 Cloudflare 通信,所以没有需要交出的 token,中间也没有第三方。

任意数量。GentleMail 不计算席位或邮箱数量。你的账单是 Cloudflare 的 Workers Paid 套餐,加上超出其包含额度的用量。

接收邮件不限制。每月前 3,000 封发送邮件包含在内,之后每 1,000 封 0.35 美元。超过 10 GB 的附件每月每 GB 收费 0.015 美元。一个十人团队每月发送 5,000 封邮件,费用约为 5.70 美元。

是的,这正是它的用途。把每个域名连接到同一个 GentleMail,为每个产品分配各自的邮箱,然后从一个侧边栏在它们之间切换。

是的。关闭一个邮箱,其邮件就会被拒收。把一条消息标记为垃圾邮件,其发件人就会在该邮箱中被屏蔽:他们之后的邮件会进入垃圾邮件,永远不会到达你的 webhook。在 Cloudflare 中,Email Routing 规则也可以在邮件到达 GentleMail 之前就丢弃某个地址的邮件。

两者皆可。你的团队在 Web 应用中阅读和回复邮件,支持文件夹、搜索、会话以及每页 50 条。你的程序通过同一批邮箱上的 API 和 webhook 工作。

是的,这正是它开源的意义。部署按钮已经在你 GitHub 账户中给了你一份自己的副本:添加你需要的东西(mailboxes API、转发、Telegram 投递、你自己的垃圾邮件规则)并 push,它就会部署。

Cloudflare 会拒收未通过 SPF 和 DKIM、未通过发件人 DMARC 策略,或来自黑名单服务器的邮件。在 GentleMail 中,把发件人标记为垃圾邮件会在该邮箱中屏蔽它,标记为非垃圾邮件则会信任它。基于内容的过滤是路线图上的下一项。

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →