AI正在绞尽脑汁想思路ING···
AI摘要
HunYuan-Lite

用免费域名,搭建一个自己的临时邮箱服务保护您的真实邮箱地址,远离垃圾邮件和不必要的订阅

前言

好久没有认真去写文章了,2025年年末那会真的好忙,不过现在已经提离职了,真的很开心。离职了。可能也是一种解脱,一个人忙了大半年。不提这些事了。

分享一个临时邮箱服务MoeMail,搭建一个自己的临时邮箱服务保护您的真实邮箱地址,远离垃圾邮件和不必要的订阅,这个项目目前在github上获得了1.8k的star,这是一个界面简洁,样式美观的,基于 NextJS + Cloudflare 技术栈构建的可爱临时邮箱服务。也就是你可以完全免费托管到 Cloudflare 上。然后再用免费的域名就能实现全免费的临时邮箱服务了。

GitHub地址:https://github.com/beilunyang/moemail

官方文档:https://docs.moemail.app/

官方在线演示地址:https://moemail.app/

项目预览

我自己搭建了一个https://mail.hudi.cc.cd/ 不想搭建的朋友可以直接使用我的,或者是官方的。由于 Cloudflare免费额度有限,我还是建议私有化搭建。

image-20260112092203608

image-20260112092625879

image-20260112092302058

image-20260112092351716

项目特点

  • 隐私保护:隐藏真实邮箱,防止垃圾邮件。
  • 高效便捷:实时收件通知、自动清理过期邮件,支持1小时至永久的灵活有效期。
  • 多端适配:响应式设计+PWA支持,兼容桌面/移动设备;亮暗色主题切换。
  • 高级扩展:支持发送邮件(基于Resend)、Webhook通知、角色权限控制及OpenAPI访问。
  • 用户友好:免费自部署(Cloudflare)、中英双语界面、萌系UI设计。

技术栈总结

Next.js (App Router) 框架,部署于 Cloudflare Pages。数据库使用 Cloudflare D1 ,认证采用 NextAuth 支持 GitHub 登录。样式基于 Tailwind CSS,UI 组件由 Radix UI 定制。邮件处理依赖 Cloudflare Email Workers,开发使用 TypeScript 确保类型安全,ORM 选用 Drizzle,国际化通过 next-intl 实现。全栈TypeScript、边缘部署、轻量高效、开发者友好

免费域名

官方地址:https://my.dnshe.com/

这里使用DNSHE的四个免费域名且可以托管 Cloudflare免费计划来做域名邮箱,目前DNSHE可使用的免费域名有,de5.netcc.cdccwu.ccus.ci,无需实名认证即可免费注册。注册步骤域名和托管Cloudflare步骤这里省略了。

临时邮箱搭建

前置条件

1、GitHub账号、 Cloudflare账号

2、域名自己的域名或者是免费的二级域名

1、官方推荐使用工作流去部署,这也是用工作流。首先fork MoeMail项目的的源码到自己的GitHub。

2、在仓库的【Settings】->【Secrets and variables】->【Action】中去添加环境部署所需要的变量

image-20260112094459622

环境变量如下

变量名 变量值
CLOUDFLARE_API_TOKEN Cloudflare API 令牌
CLOUDFLARE_ACCOUNT_ID Cloudflare 账户 ID
AUTH_GITHUB_ID GitHub OAuth App ID
AUTH_GITHUB_SECRET GitHub OAuth App Secret
AUTH_SECRET NextAuth Secret,用来加密 session,请设置一个随机字符串
CUSTOM_DOMAIN 网站自定义域名,用于访问 MoeMail(可选)
PROJECT_NAME Cloudflare Pages 项目名(可选,默认 moemail)
DATABASE_NAME D1 数据库名称(可选,默认 moemail-db)
KV_NAMESPACE_NAME Cloudflare KV namespace 名称,用于存储网站配置(可选,默认 moemail-kv)

变量获取方式看步骤3-步骤7,知道怎么获取可以跳过

3、CLOUDFLARE_API_TOKEN获取方式是在CLOUDFLARE的控制面板点击【账户管理】->【账户API令牌】->【创建令牌】

image-20260112095912013

API令牌模板中选择【编辑 Cloudflare Workers】模板,当然你也可以自定义

image-20260112100132441

在Cloudflare Workers中添加一列D1数据库的权限,域名资源选择账户内所有的。

image-20260112100501721

然后点击继续并显示API令牌信息。就能看到API信息,把它填入到GitHub的【Secrets and variables】中的变量中就行了。

4、CLOUDFLARE_ACCOUNT_ID在【计算和AI】->【workers and pages】中可以看到账户详情

image-20260112101127848

5、AUTH_GITHUB_IDAUTH_GITHUB_SECRETAUTH_SECRET 这三个变量是用于接入GitHub授权登录的。点击GitHub右上交的头像按钮,点击【Settings】->在最下边选择【Developer setting】,在【OAuth apps】点击新建认证应用按钮,找不到的点下面链接🤣。

地址如下:https://github.com/settings/applications/new

image-20260112102242143

需要填写的信息有,Application name、Homepage URL、Authorization callback URL这三项。

填写项
Application name moemail(可以自定义)
Homepage URL 网站自定义域名,用于访问 MoeMail 例如我的https://mail.hudi.cc.cd
Authorization callback URL 同Homepage URL一样就行。

image-20260112102843739

创建完成后,就可以得到AUTH_GITHUB_ID了、点击【generate a new client secret】按钮就可以生成一个AUTH_GITHUB_SECRET的值了如下,至于AUTH_SECRET用来加密 session,请设置一个随机字符串,就行。

image-20260112103315072

6、DATABASE_NAME在cloudflare的【存储和数据库】->【D1 SQL数据库】,点击右上角的【创建数据库实例】,

image-20260112103646597

数据库的实例名称填写 moemail 或者是自定义,但是要和GitHub仓库中的变量值对应对应。

image-20260112103731874

7、KV_NAMESPACE_NAME 也是在【存储和数据库】->【workers KV】中去添加同上一步骤一样,添加D1数据库,KV名称填写moemail 或者是自定义,但是要和GitHub仓库中的变量值对应

image-20260112104025109

8、所有的步骤完成以后,在GitHub仓库中,找到【Actions】选项,找到部署按钮,然后跑一个部署的工作流,等待部署完毕。

image-20260112104617004

9、部署工作流✅完成以后,回到cloudflare界面的【计算和AI】->【workers and pages】出现两个worker 一个pages项目,就部署成功了cleanup-worker是清除过期邮箱的worker。email-receiver-worker是接受电子邮件的。moemail这个就是web服务了。

image-20260112105235715

10、绑定自己的域名,以我在DNSHE上申请的maiar.cc.cd域名的域名为例,点击cloudflare界面的【计算和AI】->【workers and pages】中moemail服务进去。点击自定义域名按钮进去,添加域名就行了。

这里绑定的域名要和Homepage URLAuthorization callback URL 域名一致,不然无法使用GitHub授权登录。

image-20260112111358441

绑定验证完成以后,就可以通过mail.maiar.cc.cd访问临时邮箱服务了。

域名电子邮件配置

把需要配置的临时邮箱的域名,开启邮件的配置服务。例如maiar.cc.cd域名,配置邮件服务,其他的域名是相同的配置步骤。如下点击域名进去

image-20260112105629055

然后在左边的【电子邮件】->【电子邮件路由】,去启用电子路由和配置Catch-all 地址的地址如下。

image-20260112110105726

点击编辑Catch-all 地址按钮,操作选择【发送到worker】目标为email-receiver-worker

image-20260112110234116

把需要配置电子邮件服务的域名都完成上述操作。

临时邮箱配置

通过绑定的自定义域名进入临时邮箱服务。

第一个访问 /api/roles/init-emperor 接口的用户将成为皇帝,即网站所有者。

在网站中点击头像就可以对整个站点进行配置了。在网站配置中的【邮箱域名】填入配置好电子邮件服务的域名就行了,如下多个域名用逗号隔开就行了。

image-20260112112504509

当然你也可以在这里配置一些其他东西。

总结

我觉得这个真的很不错,很喜欢这种小清新的界面,拿来自己和朋友使用,能保护自己的真实邮箱地址,远离垃圾邮件和不必要的订阅。还能在申请小号时有更多的选择。