From 36e9c611e640ad871899ab8de16f99d2b98bf348 Mon Sep 17 00:00:00 2001 From: Dream Hunter Date: Sat, 18 Jan 2025 14:43:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20|Worker|=20add=20REMOVE=5FALL=5FATTACHM?= =?UTF-8?q?ENT=20and=20REMOVE=5FEXCEED=5FSIZE=5FATTAC=E2=80=A6=20(#563)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat: |Worker| add REMOVE_ALL_ATTACHMENT and REMOVE_EXCEED_SIZE_ATTACHMENT --- vitepress-docs/docs/zh/guide/ui/worker.md | 16 ++++++++-------- worker/src/email/check_attachment.ts | 6 +++++- worker/src/email/index.ts | 14 +++++++------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/vitepress-docs/docs/zh/guide/ui/worker.md b/vitepress-docs/docs/zh/guide/ui/worker.md index 46648ab6..e91b8afc 100644 --- a/vitepress-docs/docs/zh/guide/ui/worker.md +++ b/vitepress-docs/docs/zh/guide/ui/worker.md @@ -37,14 +37,14 @@ 7. 以下是 `Settings` -> `Variables` 中必须配置的变量列表 - | 变量名 | 说明 | 示例 | - | -------------------------- | ------------------------------------------------ | ------------------------------------ | - | `PREFIX` | 要处理的邮箱名称前缀,不需要后缀可配置为空字符串 | `tmp` | - | `DOMAINS` | 你的域名, 支持多个域名 | `["awsl.uk", "dreamhunter2333.xyz"]` | - | `ADMIN_PASSWORDS` | admin 控制台密码, 不配置则不允许访问控制台 | `["123", "456"]` | - | `JWT_SECRET` | 用于生成 jwt 的密钥, jwt 用于登录以及鉴权 | `xxx` | - | `ENABLE_USER_CREATE_EMAIL` | 是否允许用户创建邮箱, 不配置则不允许 | `true` | - | `ENABLE_USER_DELETE_EMAIL` | 是否允许用户删除邮箱, 不配置则不允许 | `true` | + | 变量名 | 说明 | 示例 | + | -------------------------- | ------------------------------------------ | ------------------------------------ | + | `PREFIX` | 要处理的邮箱名称前缀,不需要后缀可不配置 | `tmp` | + | `DOMAINS` | 你的域名, 支持多个域名 | `["awsl.uk", "dreamhunter2333.xyz"]` | + | `ADMIN_PASSWORDS` | admin 控制台密码, 不配置则不允许访问控制台 | `["123", "456"]` | + | `JWT_SECRET` | 用于生成 jwt 的密钥, jwt 用于登录以及鉴权 | `xxx` | + | `ENABLE_USER_CREATE_EMAIL` | 是否允许用户创建邮箱, 不配置则不允许 | `true` | + | `ENABLE_USER_DELETE_EMAIL` | 是否允许用户删除邮箱, 不配置则不允许 | `true` | 8. 点击 `Settings` -> `Variables`, 下拉找到 `D1 Database`, 点击 `Add Binding`, 名称如图,选择刚刚创建的 D1 数据库,点击 `Deploy` diff --git a/worker/src/email/check_attachment.ts b/worker/src/email/check_attachment.ts index 72055ea6..017beff3 100644 --- a/worker/src/email/check_attachment.ts +++ b/worker/src/email/check_attachment.ts @@ -23,7 +23,11 @@ export const remove_attachment_if_need = async ( const msg = createMimeMessage(); if (parsedEmail?.headers) { for (const header of parsedEmail.headers) { - msg.setHeader(header["key"], header["value"]); + try { + msg.setHeader(header["key"], header["value"]); + } catch (error) { + // ignore + } } } msg.setSender({ diff --git a/worker/src/email/index.ts b/worker/src/email/index.ts index 0894d10c..13a6d9e1 100644 --- a/worker/src/email/index.ts +++ b/worker/src/email/index.ts @@ -30,14 +30,14 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu return; } } catch (error) { - console.log("check junk mail error", error); + console.error("check junk mail error", error); } // remove attachment if configured or size > 2MB try { await remove_attachment_if_need(env, parsedEmailContext, message.from, message.to, message.rawSize); } catch (error) { - console.log("remove attachment error", error); + console.error("remove attachment error", error); } const message_id = message.headers.get("Message-ID"); @@ -50,11 +50,11 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu ).run(); if (!success) { message.setReject(`Failed save message to ${message.to}`); - console.log(`Failed save message from ${message.from} to ${message.to}`); + console.error(`Failed save message from ${message.from} to ${message.to}`); } } catch (error) { - console.log("save email error", error); + console.error("save email error", error); } // forward email @@ -64,7 +64,7 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu await message.forward(forwardAddress); } } catch (error) { - console.log("forward email error", error); + console.error("forward email error", error); } // send email to telegram @@ -73,7 +73,7 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu { env: env } as Context, message.to, parsedEmailContext, message_id); } catch (error) { - console.log("send mail to telegram error", error); + console.error("send mail to telegram error", error); } // send webhook @@ -83,7 +83,7 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu message.to, parsedEmailContext, message_id ); } catch (error) { - console.log("send webhook error", error); + console.error("send webhook error", error); } // trigger another worker