mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-09-04 23:17:34 +08:00
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:
@@ -37,14 +37,14 @@
|
|||||||
|
|
||||||
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` |
|
||||||
| `ENABLE_USER_CREATE_EMAIL` | 是否允许用户创建邮箱, 不配置则不允许 | `true` |
|
| `ENABLE_USER_CREATE_EMAIL` | 是否允许用户创建邮箱, 不配置则不允许 | `true` |
|
||||||
| `ENABLE_USER_DELETE_EMAIL` | 是否允许用户删除邮箱, 不配置则不允许 | `true` |
|
| `ENABLE_USER_DELETE_EMAIL` | 是否允许用户删除邮箱, 不配置则不允许 | `true` |
|
||||||
|
|
||||||
8. 点击 `Settings` -> `Variables`, 下拉找到 `D1 Database`, 点击 `Add Binding`, 名称如图,选择刚刚创建的 D1 数据库,点击 `Deploy`
|
8. 点击 `Settings` -> `Variables`, 下拉找到 `D1 Database`, 点击 `Add Binding`, 名称如图,选择刚刚创建的 D1 数据库,点击 `Deploy`
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
msg.setHeader(header["key"], header["value"]);
|
try {
|
||||||
|
msg.setHeader(header["key"], header["value"]);
|
||||||
|
} catch (error) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
msg.setSender({
|
msg.setSender({
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user