diff --git a/panel/src/app/globals.css b/panel/src/app/globals.css index 392a4c7..6654fc2 100644 --- a/panel/src/app/globals.css +++ b/panel/src/app/globals.css @@ -305,8 +305,17 @@ button:not(.primary):not(.danger):not(.link):hover,.btn-link:hover { background: .mailbox-reset { display:flex; align-items:flex-end; gap:8px; margin-top:10px; } .mailbox-reset .field { min-width:140px; } .mailbox-list-actions { display:flex; align-items:center; flex-wrap:wrap; gap:9px; } -.global-mail-protocols,.global-mail-content { margin:11px 0 15px; padding:11px 13px; border:1px solid #e3e9e4; border-radius:6px; } -.global-mail-protocols legend,.global-mail-content legend { padding:0 5px; color:#526158; font-size:12px; font-weight:650; } +.global-mail-protocols,.global-mail-content,.mail-client-config { min-width:0; margin:11px 0 15px; padding:11px 13px; border:1px solid #e3e9e4; border-radius:6px; } +.global-mail-protocols legend,.global-mail-content legend,.mail-client-config legend { padding:0 5px; color:#526158; font-size:12px; font-weight:650; } +.mail-client-config .hint-text { margin:0 0 10px; font-size:12px; } +.mail-client-host { margin:10px 0; font-size:13px; } +.mail-client-host code { color:var(--ink); overflow-wrap:anywhere; font-weight:600; } +.mail-client-config table { min-width:280px; margin:0; } +.mail-client-config .grid th,.mail-client-config .grid td { padding:9px 6px; text-align:left; font-size:12px; } +.mail-client-config .grid tbody th { border-bottom:1px solid #edf0ed; background:transparent; color:var(--ink); font-weight:500; } +.mail-client-config .grid tbody tr:last-child th { border-bottom:0; } +.mail-client-steps { margin:12px 0; padding-left:20px; color:var(--muted); font-size:12px; line-height:1.8; } +.mail-client-steps strong { color:var(--ink); font-weight:600; } .global-mail-protocols .form-row { align-items:center; } .global-mail-content>.hint-text,.global-mail-protocols>.hint-text { margin:0 0 8px 25px; font-size:11px; } .global-attachment-limit { max-width:320px; margin-top:12px; } diff --git a/panel/src/app/mail-settings/page.tsx b/panel/src/app/mail-settings/page.tsx index 40abb27..23d576f 100644 --- a/panel/src/app/mail-settings/page.tsx +++ b/panel/src/app/mail-settings/page.tsx @@ -1,6 +1,6 @@ import { redirect } from 'next/navigation' import { getCurrentAdmin } from '@/lib/auth' -import { getGlobalMailSettings } from '@/lib/settings' +import { getGlobalMailSettings, getMailHostname } from '@/lib/settings' import GlobalMailSettings from '@/app/settings/mail-settings' export const dynamic = 'force-dynamic' @@ -12,6 +12,6 @@ export default async function GlobalMailSettingsPage() { return

MAIL / POLICY

全局邮箱设置

协议、隐私与附件策略统一应用于所有邮箱;保存后同步到邮件服务。

- +
} diff --git a/panel/src/app/settings/mail-settings.tsx b/panel/src/app/settings/mail-settings.tsx index 463ea72..711aa1a 100644 --- a/panel/src/app/settings/mail-settings.tsx +++ b/panel/src/app/settings/mail-settings.tsx @@ -4,7 +4,7 @@ import { useState } from 'react' import { useRouter } from 'next/navigation' import type { GlobalMailSettings } from '@/lib/settings' -export default function GlobalMailSettings({ initial }: { initial: GlobalMailSettings }) { +export default function GlobalMailSettings({ initial, mailHost }: { initial: GlobalMailSettings; mailHost: string }) { const router = useRouter() const [settings, setSettings] = useState(initial) const [unlimited, setUnlimited] = useState(initial.maxAttachmentMb === 0) @@ -61,6 +61,28 @@ export default function GlobalMailSettings({ initial }: { initial: GlobalMailSet

SMTP 开关只控制账号认证发信;邮件服务器之间的收信投递不受影响。POP3 和 ManageSieve 还需在 DMS 环境中启用对应服务。

+
+ 邮件客户端配置 +

在 Foxmail、Thunderbird、Apple Mail 等客户端添加邮箱时,选择“手动配置”。推荐使用 IMAP,多台设备可同步邮件;也可选择 POP3 下载邮件。

+ {mailHost ?

收件服务器和发件服务器均填写:{mailHost}

:

尚未配置邮件主机名,请先在“环境配置 → DNS 与 TLS”中设置。

} +
+ + + + + + + + +
用途协议端口加密方式
收件(推荐)IMAP993SSL/TLS
收件POP3995SSL/TLS
发件SMTP465SSL/TLS
发件(备用)SMTP587STARTTLS
+
+ +

收件选择 IMAP 或 POP3 其中一种,发件始终使用 SMTP。请先启用并保存对应协议,确保邮件证书已安装、对应端口已放行。

+
内容与附件