diff --git a/background.js b/background.js index 2bf1d8b..e54db38 100644 --- a/background.js +++ b/background.js @@ -223,6 +223,12 @@ function isSignupPageHost(hostname = '') { return ['auth0.openai.com', 'auth.openai.com', 'accounts.openai.com'].includes(hostname); } +function is163MailHost(hostname = '') { + return hostname === 'mail.163.com' + || hostname.endsWith('.mail.163.com') + || hostname === 'webmail.vip.163.com'; +} + function buildLocalhostCleanupPrefix(rawUrl) { const parsed = parseUrlSafely(rawUrl); if (!parsed || parsed.hostname !== 'localhost') return ''; @@ -249,7 +255,7 @@ function matchesSourceUrlFamily(source, candidateUrl, referenceUrl) { case 'qq-mail': return candidate.hostname === 'mail.qq.com' || candidate.hostname === 'wx.mail.qq.com'; case 'mail-163': - return candidate.hostname === 'mail.163.com' || candidate.hostname.endsWith('.mail.163.com'); + return is163MailHost(candidate.hostname); case 'inbucket-mail': return Boolean(reference) && candidate.origin === reference.origin @@ -1764,6 +1770,9 @@ function getMailConfig(state) { if (provider === '163') { return { source: 'mail-163', url: 'https://mail.163.com/js6/main.jsp?df=mail163_letter#module=mbox.ListModule%7C%7B%22fid%22%3A1%2C%22order%22%3A%22date%22%2C%22desc%22%3Atrue%7D', label: '163 邮箱' }; } + if (provider === '163-vip') { + return { source: 'mail-163', url: 'https://webmail.vip.163.com/js6/main.jsp?df=mail163_letter#module=mbox.ListModule%7C%7B%22fid%22%3A1%2C%22order%22%3A%22date%22%2C%22desc%22%3Atrue%7D', label: '163 VIP 邮箱' }; + } if (provider === 'inbucket') { const host = normalizeInbucketOrigin(state.inbucketHost); const mailbox = (state.inbucketMailbox || '').trim(); diff --git a/content/utils.js b/content/utils.js index a80ffca..224c774 100644 --- a/content/utils.js +++ b/content/utils.js @@ -3,9 +3,10 @@ const SCRIPT_SOURCE = (() => { if (window.__MULTIPAGE_SOURCE) return window.__MULTIPAGE_SOURCE; const url = location.href; + const hostname = location.hostname; if (url.includes('auth0.openai.com') || url.includes('auth.openai.com') || url.includes('accounts.openai.com')) return 'signup-page'; - if (url.includes('mail.qq.com')) return 'qq-mail'; - if (url.includes('mail.163.com')) return 'mail-163'; + if (hostname === 'mail.qq.com' || hostname === 'wx.mail.qq.com') return 'qq-mail'; + if (hostname === 'mail.163.com' || hostname.endsWith('.mail.163.com') || hostname === 'webmail.vip.163.com') return 'mail-163'; if (url.includes('duckduckgo.com/email/settings/autofill')) return 'duck-mail'; if (url.includes('chatgpt.com')) return 'chatgpt'; // VPS panel — detected dynamically since URL is configurable diff --git a/manifest.json b/manifest.json index 355579a..9638b71 100644 --- a/manifest.json +++ b/manifest.json @@ -43,7 +43,8 @@ { "matches": [ "https://mail.163.com/*", - "https://*.mail.163.com/*" + "https://*.mail.163.com/*", + "https://webmail.vip.163.com/*" ], "js": ["content/utils.js", "content/mail-163.js"], "all_frames": true, diff --git a/sidepanel/sidepanel.html b/sidepanel/sidepanel.html index 85aab75..b7bc20a 100644 --- a/sidepanel/sidepanel.html +++ b/sidepanel/sidepanel.html @@ -56,6 +56,7 @@ 邮箱服务