diff --git a/background.js b/background.js
index 346760e..7f94768 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 @@
邮箱服务