feat: |Worker| add REMOVE_ALL_ATTACHMENT and REMOVE_EXCEED_SIZE_ATTAC… (#563)

feat: |Worker| add REMOVE_ALL_ATTACHMENT and REMOVE_EXCEED_SIZE_ATTACHMENT
This commit is contained in:
Dream Hunter
2025-01-18 14:43:09 +08:00
committed by GitHub
parent 047200c1c2
commit 36e9c611e6
3 changed files with 20 additions and 16 deletions
+2 -2
View File
@@ -38,8 +38,8 @@
7. 以下是 `Settings` -> `Variables` 中必须配置的变量列表 7. 以下是 `Settings` -> `Variables` 中必须配置的变量列表
| 变量名 | 说明 | 示例 | | 变量名 | 说明 | 示例 |
| -------------------------- | ------------------------------------------------ | ------------------------------------ | | -------------------------- | ------------------------------------------ | ------------------------------------ |
| `PREFIX` | 要处理的邮箱名称前缀,不需要后缀可配置为空字符串 | `tmp` | | `PREFIX` | 要处理的邮箱名称前缀,不需要后缀可配置 | `tmp` |
| `DOMAINS` | 你的域名, 支持多个域名 | `["awsl.uk", "dreamhunter2333.xyz"]` | | `DOMAINS` | 你的域名, 支持多个域名 | `["awsl.uk", "dreamhunter2333.xyz"]` |
| `ADMIN_PASSWORDS` | admin 控制台密码, 不配置则不允许访问控制台 | `["123", "456"]` | | `ADMIN_PASSWORDS` | admin 控制台密码, 不配置则不允许访问控制台 | `["123", "456"]` |
| `JWT_SECRET` | 用于生成 jwt 的密钥, jwt 用于登录以及鉴权 | `xxx` | | `JWT_SECRET` | 用于生成 jwt 的密钥, jwt 用于登录以及鉴权 | `xxx` |
+4
View File
@@ -23,7 +23,11 @@ export const remove_attachment_if_need = async (
const msg = createMimeMessage(); const msg = createMimeMessage();
if (parsedEmail?.headers) { if (parsedEmail?.headers) {
for (const header of parsedEmail.headers) { for (const header of parsedEmail.headers) {
try {
msg.setHeader(header["key"], header["value"]); msg.setHeader(header["key"], header["value"]);
} catch (error) {
// ignore
}
} }
} }
msg.setSender({ msg.setSender({
+7 -7
View File
@@ -30,14 +30,14 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu
return; return;
} }
} catch (error) { } catch (error) {
console.log("check junk mail error", error); console.error("check junk mail error", error);
} }
// remove attachment if configured or size > 2MB // remove attachment if configured or size > 2MB
try { try {
await remove_attachment_if_need(env, parsedEmailContext, message.from, message.to, message.rawSize); await remove_attachment_if_need(env, parsedEmailContext, message.from, message.to, message.rawSize);
} catch (error) { } catch (error) {
console.log("remove attachment error", error); console.error("remove attachment error", error);
} }
const message_id = message.headers.get("Message-ID"); const message_id = message.headers.get("Message-ID");
@@ -50,11 +50,11 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu
).run(); ).run();
if (!success) { if (!success) {
message.setReject(`Failed save message to ${message.to}`); 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) { catch (error) {
console.log("save email error", error); console.error("save email error", error);
} }
// forward email // forward email
@@ -64,7 +64,7 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu
await message.forward(forwardAddress); await message.forward(forwardAddress);
} }
} catch (error) { } catch (error) {
console.log("forward email error", error); console.error("forward email error", error);
} }
// send email to telegram // send email to telegram
@@ -73,7 +73,7 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu
{ env: env } as Context<HonoCustomType>, { env: env } as Context<HonoCustomType>,
message.to, parsedEmailContext, message_id); message.to, parsedEmailContext, message_id);
} catch (error) { } catch (error) {
console.log("send mail to telegram error", error); console.error("send mail to telegram error", error);
} }
// send webhook // send webhook
@@ -83,7 +83,7 @@ async function email(message: ForwardableEmailMessage, env: Bindings, ctx: Execu
message.to, parsedEmailContext, message_id message.to, parsedEmailContext, message_id
); );
} catch (error) { } catch (error) {
console.log("send webhook error", error); console.error("send webhook error", error);
} }
// trigger another worker // trigger another worker