Abner e16da38bb2 修复 wrangler 配置文件占位符替换时序问题 (#57)
- 移除 telemetry 命令的配置文件参数避免在替换前读取配置
- 重新组织工作流步骤,确保配置文件占位符替换在所有 wrangler 命令之前执行
- 添加调试信息显示 R2_BUCKET_NAME 值和配置文件内容
- 修复 R2 bucket name 验证错误
- 调整数据库初始化等待时间从 10 秒增加到 15 秒
2025-07-27 10:23:21 +08:00
2025-07-24 18:05:00 +08:00
2025-07-24 18:05:00 +08:00
2025-07-24 18:05:00 +08:00
2025-07-24 18:05:00 +08:00
2025-07-24 18:05:00 +08:00

Cloud Mail

使用Vue3开发的响应式简约邮箱服务支持邮件发送附件收发可以部署到Cloudflare云平台实现免费白嫖🎉

简体中文 | English

项目简介

只需要一个域名,就可以创建多个不同的邮箱,类似各大邮箱平台 QQ邮箱谷歌邮箱等本项目使用Cloud flare部署Resend推送邮件无需服务器费用搭建属于自己的邮箱服务

项目展示

👉 在线演示

👉 小白保姆教程-界面部署

功能介绍

  • 💰免费白嫖无需服务器部署到Cloudflare Workers 免费使用,不要钱

  • 💻响应式设计响应式布局自动适配PC和大部分手机端浏览器

  • 📧邮件发送集成resend发送邮件支持群发内嵌图片和附件发送发送状态查看

  • 🛡️管理员功能可以对用户邮件进行管理RABC权限控制对功能及使用资源限制

  • 🔀多号模式:开启后一个用户可以添加多个邮箱,默认一用户一邮箱,类似各大邮箱平台

  • 📦附件收发支持收发附件使用R2对象存储保存和下载文件

  • 🔔邮件推送接收邮件后可以转发到TG机器人或其他服务商邮箱

  • 📈数据可视化使用echarts对系统数据详情用户邮件增长可视化显示

  • 星标邮件:标记重要邮件,以便快速查阅

  • 🎨个性化设置:可以自定义网站标题,登录背景,透明度

  • ⚙️功能设置:可以对注册,邮件发送,添加等功能关闭和开启,设为私人站点

  • 🤖人机验证集成Turnstile人机验证防止人机批量注册

  • 📜更多功能:正在开发中...

技术栈

使用教程

环境要求

Nodejs v18.20 +

Cloudflare 账号 (需要绑定域名)

克隆项目到本地

git clone https://github.com/eoao/cloud-mail #拉取代码
cd cloud-mail/mail-worker #进入worker目录

安装依赖

npm i

项目配置

mail-worker/wrangler.toml

[[d1_databases]]
binding = "db"			#d1数据库绑定名默认不可修改
database_name = ""		#d1数据库名字
database_id = ""		#d1数据库id

[[kv_namespaces]]
binding = "kv"			#kv绑定名默认不可修改
id = ""			        #kv数据库id


[[r2_buckets]]
binding = "r2"                  #r2对象存储绑定名默认不可修改
bucket_name = ""	        #r2对象存储桶的名字
	

[assets]
binding = "assets"		#静态资源绑定名默认不可修改
directory = "./dist"	        #前端vue项目打包的静态资源存放位置,默认dist

[vars]
orm_log = false
domain = []			#邮件域名可以配置多个示例: ["example1.com","example2.com"]
admin = ""		        #管理员的邮箱 示例: "admin@example.com"
jwt_secret = ""			#登录身份令牌的密钥,随便填一串字符串

远程部署

  1. 在 Cloudflare 控制台创建KVD1数据库R2对象存储

  2. 在项目目录 mail-worker/wrangler.toml 配置文件中配置对应环境变量以及创建的数据库id和名称

  3. 执行远程部署命令

    npm run deploy 
    
  4. 在Cloudflare→账户主页→你的域名→电子邮件→电子邮件路由→路由规则→Catch-all地址编辑发送到worker

  5. 浏览器输入 https://你的项目域名/api/init/你的jwt_secret 初始化或更新 d1和kv数据库

  6. 部署完成登录网站,使用管理员账号可以在设置页面添加配置 R2域名 Turnstile密钥 等

👉 使用 Github Action 部署

本地运行

  1. 本地运行,数据库,对象存储会自动安装,无需创建,数据库数据保存在 mail-worker/.wrangler 文件夹

    npm run dev 
    
  2. 浏览器输入 http://127.0.0.1:8787/api/init/你的jwt_secret 初始化d1和kv数据库

  3. 本地运行项目设置页面r2域名可设置为 http://127.0.0.1:8787/api/file

邮件发送

  1. 在 resend 官网注册后,点击左侧 Domains 添加并验证你的域名,等待验证完成

  2. 点击左侧 Api Keys 创建立api key 复制token回到项目网站设置页面添加 resend token

  3. 点击左侧 Webhooks 添加回调地址 https://你的项目域名/api/webhooks

    勾选 (email.bounced email.complained email.delivered email.delivery_delayed)

项目更新

更新后需要执行 https://你的项目域名/api/init/你的jwt_secret 来同步数据库结构

赞助

请我喝一杯奶茶

特别赞助商

DartNode:提供云计算服务资源支持

Powered by DartNode

许可证

本项目采用 MIT 许可证

交流

Telegram

Description
cloudflare email 邮箱 临时邮箱 邮件发送 mail
Readme MIT 24 MiB
Languages
JavaScript 60.6%
Vue 38.2%
CSS 0.8%
HTML 0.4%