Skip to content

wenfxl/cloud-mail

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

163 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloud Mail

基于 Cloudflare 的简约响应式邮箱服务,支持邮件发送、附件收发 🎉

简体中文 | English

releases issues stargazers forks

trendshift

项目简介

只需要一个域名,就可以创建多个不同的邮箱,类似各大邮箱平台,本项目支持署到 Cloudflare Workers ,降低服务器成本,搭建自己的邮箱服务

项目展示

功能介绍

  • 💰 低成本使用: 可部署到 Cloudflare Workers 降低服务器成本

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

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

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

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

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

  • 📡 开放API:支持使用API批量生成用户,多条件查询邮件

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

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

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

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

技术栈

目录结构

cloud-mail
├── mail-worker				    # worker后端项目
│   ├── src                  
│   │   ├── api	 			    # api接口层			
│   │   ├── const  			    # 项目常量
│   │   ├── dao                 # 数据访问层
│   │   ├── email			    # 邮件处理接收
│   │   ├── entity			    # 数据库实体
│   │   ├── error			    # 自定义异常
│   │   ├── hono			    # web框架配置、拦截器、全局异常等
│   │   ├── i18n			    # 语言国际化
│   │   ├── init			    # 数据库缓存初始化
│   │   ├── model			    # 响应体数据封装
│   │   ├── security			# 身份权限认证
│   │   ├── service			    # 业务服务层
│   │   ├── template			# 消息模板
│   │   ├── utils			    # 工具类
│   │   └── index.js			# 入口文件
│   ├── pageckge.json			# 项目依赖
│   └── wrangler.toml			# 项目配置
│
├── mail-vue				    # vue前端项目
│   ├── src
│   │   ├── axios 			    # axios配置
│   │   ├── components			# 自定义组件
│   │   ├── echarts			    # echarts组件导入
│   │   ├── i18n			    # 语言国际化
│   │   ├── init			    # 入站初始化
│   │   ├── layout			    # 主体布局组件
│   │   ├── perm			    # 权限认证
│   │   ├── request			    # api接口
│   │   ├── router			    # 路由配置
│   │   ├── store			    # 全局状态管理
│   │   ├── utils			    # 工具类
│   │   ├── views			    # 页面组件
│   │   ├── app.vue			    # 入口组件
│   │   ├── main.js			    # 入口js
│   │   └── style.css			# 全局css
│   ├── package.json			# 项目依赖
└── └── env.release				# 项目配置

Webhook 收信模式

EMAIL_WEBHOOK_URLEMAIL_WEBHOOK_SECRET 同时非空时,Cloud Mail 会启用 Webhook 收信模式

  • 收到邮件后,直接转发到你的后端 API
  • 不再走原有站内入库/前端展示链路
  • 适合将邮件交给你自己的服务做验证码提取、Redis 存储、业务处理

如果任意一个未配置,则保持原有收信逻辑不变。

环境变量

mail-worker/wrangler.toml 或 Cloudflare Worker Variables 中配置:

EMAIL_WEBHOOK_URL="https://your-domain.com"
EMAIL_WEBHOOK_SECRET="your-secret"
EMAIL_WEBHOOK_TIMEOUT_MS="10000"

说明:

  • EMAIL_WEBHOOK_URL:Webhook 基础地址;如果只填写根地址,系统会自动补全为 /api/webhook/email
  • EMAIL_WEBHOOK_SECRET:鉴权密钥,会放在请求头 X-Webhook-Secret
  • EMAIL_WEBHOOK_TIMEOUT_MS:请求超时(毫秒),默认 10000

请求格式

Cloud Mail 会向你的接口发送:

POST /api/webhook/email
Content-Type: application/json
X-Webhook-Secret: your-secret
{
  "message_id": "<message-id@example.com>",
  "to_addr": "target@example.com",
  "raw_content": "完整 RFC822 原始邮件内容",
  "from_addr": "sender@example.com"
}

调试日志

启用 Webhook 后,Worker 日志会打印:

  • 收到邮件事件
  • 准备发送 webhook
  • 实际请求 URL
  • 响应状态码
  • 成功/失败返回内容

便于快速定位是“没发出去”还是“后端返回错误”。

赞助

许可证

本项目采用 MIT 许可证

交流

Telegram

About

A Cloudflare-based email service | 基于 Cloudflare 的邮箱服务 | Cloudflare Email 邮箱 Mail

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 61.0%
  • Vue 37.8%
  • Other 1.2%