Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: update readme #106

Merged
merged 1 commit into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,8 @@ database_id = "xxx" # D1 数据库 ID

部署

第一次部署会提示创建项目, `production` 分支请填写 `production`

```bash
pnpm run deploy
```
Expand All @@ -162,6 +164,8 @@ pnpm run deploy

## Cloudflare Email Routing

在将电子邮件地址绑定到您的 Worker 之前,您需要启用电子邮件路由并拥有至少一个经过验证的电子邮件地址。

配置对应域名的 `电子邮件 DNS 记录`

配置 `Cloudflare Email Routing` catch-all 发送到 `worker`
Expand All @@ -172,6 +176,8 @@ pnpm run deploy

## Cloudflare Pages 前端

第一次部署会提示创建项目, `production` 分支请填写 `production`

```bash
cd frontend
pnpm install
Expand Down
8 changes: 8 additions & 0 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ wrangler d1 execute dev --file=db/schema.sql

### Backend - Cloudflare workers

The first deployment will prompt you to create a project. Please fill in `production` for the `production` branch.

```bash
cd worker
pnpm install
Expand All @@ -65,12 +67,18 @@ you can find and test the worker's url in the workers dashboard

![worker](readme_assets/worker.png)

## Cloudflare Email Routing

Before you can bind an email address to your Worker, you need to enable Email Routing and have at least one verified email address.

enable email route and config email forward catch-all to the worker

![email](readme_assets/email.png)

### Frontend - Cloudflare pages

The first deployment will prompt you to create a project. Please fill in `production` for the `production` branch.

```bash
cd frontend
pnpm install
Expand Down
12 changes: 1 addition & 11 deletions worker/src/email.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,8 @@ async function email(message, env, ctx) {
return;
}
if (!env.PREFIX || (message.to && message.to.startsWith(env.PREFIX))) {
const reader = message.raw.getReader();
const decoder = new TextDecoder("utf-8");
let rawEmail = "";
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
rawEmail += decoder.decode(value);
}
const rawEmail = await new Response(message.raw).text();
const message_id = message.headers.get("Message-ID");

// save email
const { success } = await env.DB.prepare(
`INSERT INTO raw_mails (source, address, raw, message_id) VALUES (?, ?, ?, ?)`
Expand Down