修改文档和修改项目错字

This commit is contained in:
eoao
2025-06-05 08:53:24 +08:00
parent e0abb4ac00
commit 47c486dce6
13 changed files with 38 additions and 32 deletions
+29 -25
View File
@@ -10,15 +10,17 @@
</div>
## 项目简介
只需要一个域名,就可以创建多个不同的邮箱,类似各大邮箱平台 QQ邮箱,谷歌邮箱等,本项目使用Cloud flare部署,Rsend推送邮件,无需服务器费用,搭建属于自己的邮箱服务
## 项目展示
[**👉在线演示**](https://skymail.ink)
[**👉 在线演示**](https://skymail.ink)
[**👉小白保姆教程-界面部署**](https://doc.skymail.ink)
[**👉 小白保姆教程-界面部署**](https://doc.skymail.ink)
| ![](demo/demo1.png) | ![](demo/demo2.png) |
|---------------------|---------------------|
@@ -44,7 +46,7 @@
- **⭐星标邮件**:标记重要邮件,以便快速查阅
- **🎨个性化设置**:可以自定义网站标题,登录背景
- **🎨个性化设置**:可以自定义网站标题,登录背景,透明度
- **⏱️轮询刷新**:轮询请求服务器自动获取最新邮件,可自定义间隔
@@ -66,6 +68,8 @@
- **平台:** [Cloudflare workers](https://developers.cloudflare.com/workers/)
- **邮件推送:** [Resend](https://resend.com/)
- **缓存**[Cloudflare KV](https://developers.cloudflare.com/kv/)
- **数据库**[Cloudflare D1](https://developers.cloudflare.com/d1/)
@@ -80,11 +84,9 @@
### 环境要求
Nodejs v18.20 +
Cloudflare 账号
Cloudflare 账号 (需要绑定域名)
**克隆项目到本地**
@@ -100,6 +102,8 @@ npm i
**项目配置**
mail-worker/wrangler.toml
```toml
[[d1_databases]]
binding = "db" #d1数据库绑定名默认不可修改
@@ -132,40 +136,41 @@ jwt_secret = "" #登录身份令牌的密钥,随便填一串字符串
**远程部署**
Cloudflare控制台创建KVD1数据库,R2对象存储
1. 在 Cloudflare 控制台创建KV,D1数据库,R2对象存储
2. 在项目目录 mail-worker/wrangler.toml 配置文件中配置对应环境变量,以及创建的数据库id和名称
3. 执行远程部署命令
在 wrangler.toml 中配置对应环境变量
```shell
npm run deploy
```
```shell
npm run deploy
```
4. 在Cloudflare→账户主页→你的域名→电子邮件→电子邮件路由→路由规则→Catch-all地址,编辑发送到worker
然后在Cloudflare->域名管理->电子邮件->路由规则->Catch-all 地址. 这里选择发送到 worker, 然后选择创建的worker
5. 浏览器输入 https://你的项目域名/api/init/你的jwt_secret 初始化或更新 d1和kv数据库
浏览器输入 https://<你的项目域名>/api/init/<你的jwt_secret> 初始化或更新 d1和kv数据库
部署完成登录网站,使用管理员账号在设置页面添加配置 R2域名 Turnstile密钥
6. 部署完成登录网站,使用管理员账号可以在设置页面添加配置 R2域名 Turnstile密钥 等
**邮件发送**
resend注册后验证你的域名并创建ApiKey, 回到项目网站设置页面添加 resend token
1. 在 resend 官网注册后,点击左侧 Domains 添加并验证你的域名,等待验证完成
2. 点击左侧 Api Keys 创建立api key 复制token回到项目网站设置页面添加 resend token
在resend Webhooks 添加回调地址https://<你的项目域名>/api/webhooks
3. 点击左侧 Webhooks 添加回调地址 https://你的项目域名/api/webhooks
勾选✅ (email.bounced email.complained email.delivered email.delivery_delayed)
勾选✅ (email.bounced email.complained email.delivered email.delivery_delayed)
**本地运行**
本地运行,数据库,对象存储会自动安装,无需创建
1. 本地运行,数据库,对象存储会自动安装,无需创建,数据库数据保存在 mail-worker/.wrangler文件夹
```shell
npm run dev
```
浏览器输入http://127.0.0.1:8787/api/init/<你的jwt_secret>初始化d1和kv数据库
```shell
npm run dev
```
2. 浏览器输入 http://127.0.0.1:8787/api/init/你的jwt_secret 初始化d1和kv数据库
本地运行项目页面设置r2域名可设置为http://127.0.0.1:8787/api/file
3. 本地运行项目设置页面r2域名可设置为 http://127.0.0.1:8787/api/file
## 目录结构
@@ -218,4 +223,3 @@ cloud-mail
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 KiB

After

Width:  |  Height:  |  Size: 78 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 KiB

After

Width:  |  Height:  |  Size: 399 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 304 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

After

Width:  |  Height:  |  Size: 218 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 121 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 195 KiB

+1 -1
View File
@@ -52,7 +52,7 @@ const routers = {
name: 'sys-email',
component: () => import('@/views/sys-email/index.vue'),
meta: {
title: '邮列表',
title: '邮列表',
name: 'sys-email',
menu: true
}
+3
View File
@@ -377,6 +377,9 @@ function submitRegister() {
height: 38px;
width: 100%;
margin-bottom: 18px;
:deep(.el-input__inner) {
height: 36px;
}
}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -6,8 +6,8 @@
<title></title>
<link rel="icon" href="/assets/favicon-C5dAZutX.svg" type="image/svg+xml">
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
<script type="module" crossorigin src="/assets/index-D0fGF25e.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-C-09JQBr.css">
<script type="module" crossorigin src="/assets/index-Th4oUcyH.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-3kOBVh6Q.css">
</head>
<body>
<div id="loading-first">
-1
View File
@@ -15,7 +15,6 @@ enabled = true
#binding = "kv" #kv绑定名默认不可修改
#id = "" #kv数据库id
#(可选)
#[[r2_buckets]]
#binding = "r2" #r2对象存储绑定名默认不可修改
#bucket_name = "" #r2对象存储桶的名字