From 5e227d2b2ddd297f6cdc776676d6542ec1c68b6a Mon Sep 17 00:00:00 2001 From: Dream Hunter Date: Mon, 29 Dec 2025 17:15:24 +0800 Subject: [PATCH] feat: add source address regex forwarding (#796) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat: add source address regex forwarding for email rules - Add sourcePatterns field to filter forwarding by sender address regex - Support 'any' and 'all' match modes for multiple patterns - Add ReDoS protection with 200 character limit - Frontend validation for regex patterns - Fully backward compatible with existing configurations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude --- CHANGELOG.md | 1 + CHANGELOG_EN.md | 1 + frontend/src/views/admin/AccountSettings.vue | 107 +++++++++++++- worker/src/email/forward.ts | 139 +++++++++++++++++++ worker/src/email/index.ts | 44 +----- worker/src/types.d.ts | 3 + 6 files changed, 247 insertions(+), 48 deletions(-) create mode 100644 worker/src/email/forward.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index efd9f60b..33579396 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ ### Features +- feat: |邮件转发| 新增来源地址正则转发功能,支持按发件人地址过滤转发,完全向后兼容 - feat: |地址来源| 新增地址来源追踪功能,记录地址创建来源(Web 记录 IP,Telegram 记录用户 ID,Admin 后台标记) - feat: |邮件过滤| 移除后端 keyword 参数,改为前端过滤当前页邮件,优化查询性能 - feat: |数据库| 为 `message_id` 字段添加索引,优化邮件更新操作性能,需执行 `db/2025-12-15-message-id-index.sql` 更新数据库 diff --git a/CHANGELOG_EN.md b/CHANGELOG_EN.md index c73b78ad..d685fabf 100644 --- a/CHANGELOG_EN.md +++ b/CHANGELOG_EN.md @@ -14,6 +14,7 @@ ### Features +- feat: |Email Forwarding| Add source address regex forwarding, filter by sender address, fully backward compatible - feat: |Address Source| Add address source tracking feature, record address creation source (Web records IP, Telegram records user ID, Admin panel marked) - feat: |Email Filtering| Remove backend keyword parameter, switch to frontend filtering of current page emails, optimize query performance - feat: |Database| Add index for `message_id` field to optimize email update operations, need to execute `db/2025-12-15-message-id-index.sql` to update database diff --git a/frontend/src/views/admin/AccountSettings.vue b/frontend/src/views/admin/AccountSettings.vue index 0dab6881..12f8653e 100644 --- a/frontend/src/views/admin/AccountSettings.vue +++ b/frontend/src/views/admin/AccountSettings.vue @@ -1,7 +1,7 @@