From b60add170c105309a80a2a17c86c124355c8979c Mon Sep 17 00:00:00 2001 From: eoao Date: Fri, 8 May 2026 22:40:17 +0800 Subject: [PATCH] feat: add email blacklist filtering --- mail-vue/src/i18n/en.js | 4 ++ mail-vue/src/i18n/zh.js | 4 ++ mail-vue/src/request/setting.js | 6 +- mail-vue/src/views/sys-setting/index.vue | 84 +++++++++++++++++++++- mail-worker/src/api/setting-api.js | 5 ++ mail-worker/src/email/email.js | 42 ++++++++++- mail-worker/src/entity/setting.js | 5 +- mail-worker/src/init/init.js | 13 ++++ mail-worker/src/service/setting-service.js | 11 ++- 9 files changed, 166 insertions(+), 8 deletions(-) diff --git a/mail-vue/src/i18n/en.js b/mail-vue/src/i18n/en.js index ac305d6..a82b625 100644 --- a/mail-vue/src/i18n/en.js +++ b/mail-vue/src/i18n/en.js @@ -147,6 +147,7 @@ const en = { autoRefreshDesc: 'Automatically fetch the latest emails from the server', sendEmail: 'Send Email', resendToken: 'Resend Token', + blackList: 'Blocklist', oss: 'Object Storage', osDomain: 'Domain', ossDomainDesc: 'Leave empty if using KV storage.', @@ -311,6 +312,9 @@ const en = { character: '', mustNotContain: 'Must Not Contain', mustNotContainDesc: 'Separate with commas', + blackSubjectDesc: '输入多个值用,分开', + blackContentDesc: '输入多个值用,分开', + blackFromDesc: '输入多个值用,分开', setSuccess: 'Settings saved successfully', details: 'Details', userDetails: 'User Details', diff --git a/mail-vue/src/i18n/zh.js b/mail-vue/src/i18n/zh.js index 5d90dd9..5eb887a 100644 --- a/mail-vue/src/i18n/zh.js +++ b/mail-vue/src/i18n/zh.js @@ -147,6 +147,7 @@ const zh = { autoRefreshDesc: '轮询请求服务器获取最新邮件', sendEmail: '邮件发送', resendToken: 'Resend Token', + blackList: '邮件黑名单', oss: '对象存储', osDomain: '访问域名', ossDomainDesc: '如果是KV存储不要填', @@ -311,6 +312,9 @@ const zh = { character: '位', mustNotContain: '禁止包含', mustNotContainDesc: '输入多个值用,分开', + blackSubjectDesc: '邮件标题', + blackContentDesc: '邮件内容', + blackFromDesc: '发件人邮箱或域名', setSuccess: '设置成功', details: '详情', userDetails: '用户详情', diff --git a/mail-vue/src/request/setting.js b/mail-vue/src/request/setting.js index 9a5f9b0..c605dec 100644 --- a/mail-vue/src/request/setting.js +++ b/mail-vue/src/request/setting.js @@ -1,7 +1,7 @@ import http from '@/axios/index.js'; export function settingSet(setting) { - return http.put('/setting/set',setting) + return http.put('/setting/set', setting) } export function settingQuery() { @@ -19,3 +19,7 @@ export function setBackground(background) { export function deleteBackground() { return http.delete('/setting/deleteBackground') } + +export function setBlackList(params) { + return http.put('/setting/setBlacklist', params) +} \ No newline at end of file diff --git a/mail-vue/src/views/sys-setting/index.vue b/mail-vue/src/views/sys-setting/index.vue index 54b2cc1..5da1d16 100644 --- a/mail-vue/src/views/sys-setting/index.vue +++ b/mail-vue/src/views/sys-setting/index.vue @@ -189,6 +189,15 @@ +
+
{{ $t('blackList') }}
+
+ + + +
+
@@ -724,17 +733,31 @@
{{ t('mustNotContain') }}
- +
{{ $t('save') }} + + + + + + + + + + + + + {{ $t('save') }} +