diff --git a/README.md b/README.md index e2f65286..74aad410 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,8 @@ database_id = "xxx" # D1 数据库 ID 部署 +第一次部署会提示创建项目, `production` 分支请填写 `production` + ```bash pnpm run deploy ``` @@ -162,6 +164,8 @@ pnpm run deploy ## Cloudflare Email Routing +在将电子邮件地址绑定到您的 Worker 之前,您需要启用电子邮件路由并拥有至少一个经过验证的电子邮件地址。 + 配置对应域名的 `电子邮件 DNS 记录` 配置 `Cloudflare Email Routing` catch-all 发送到 `worker` @@ -172,6 +176,8 @@ pnpm run deploy ## Cloudflare Pages 前端 +第一次部署会提示创建项目, `production` 分支请填写 `production` + ```bash cd frontend pnpm install diff --git a/README_EN.md b/README_EN.md index dd3fee1b..d23bb5c5 100644 --- a/README_EN.md +++ b/README_EN.md @@ -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 @@ -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 diff --git a/worker/src/email.js b/worker/src/email.js index 3e31493f..c1123333 100644 --- a/worker/src/email.js +++ b/worker/src/email.js @@ -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 (?, ?, ?, ?)`