SMTP 與電子郵件範本
管理者位置: System › Settings › Email (
/settings/email) — 標籤頁 SMTP 與 Email templates。傳送記錄:Overview › Support › Sent emails (/support/emails)。
功能
NexCMP 會針對註冊驗證、密碼重設、「VM ready」(包含初始密碼)、發票、餘額不足、續約、加值、支援回覆等事項發送電子郵件。所有郵件均透過您提供的單一 SMTP 帳戶發送。訊息與範本支援 16 種語言;系統將自動採用客戶的語言。
需求
| 項目 | 需求 |
|---|---|
| SMTP 伺服器 | 任何提供者的主機、連接埠與憑證(您自己的伺服器、Brevo、Amazon SES、Mailgun、Google Workspace……) |
| 網路 | 從 NexCMP 伺服器到 SMTP 主機與連接埠(587 STARTTLS、465 TLS 或 25)的對外 TCP 連線 |
| 寄件者網域 | 您控制的網域,並已針對該提供者發布 SPF 與 DKIM 以及 DMARC 記錄 |
| 權限 | SMTP 帳戶必須獲准以 From 地址發送郵件 |
送達率
像是「VM ready」等電子郵件包含密碼。如果寄件者網域的 SPF/DKIM/DMARC 與 SMTP 提供者不符,郵件將被歸為垃圾郵件。頁面會對此向您提出提醒。
準備電子郵件提供者
- 在您的提供者面板中新增並驗證您的寄件網域(例如
example.com)。 - 發布提供者顯示的 SPF、DKIM 和 DMARC DNS 記錄。
- 建立 SMTP 使用者(或 API-SMTP 金鑰)並記下主機、連接埠、使用者名稱和密碼。
在 NexCMP 中連線
- 開啟 System › Settings › Email,切換至 SMTP 標籤頁。
- 填寫表單:
| 欄位 | 範例 | 注意事項 |
|---|---|---|
| 主機 | smtp.example.net | SMTP 伺服器 |
| 連接埠 | 587 | |
| 安全性 | STARTTLS (587) | 選擇您的提供者所要求的模式 |
| 使用者名稱 | smtp-user | |
| Password | (隱藏) | 僅寫入:頁面僅顯示是否已設定 |
| 寄件者信箱 | no-reply@example.com | 必須在提供者端取得授權 |
| 寄件者名稱 | Example Cloud | 預設為您的品牌名稱 |
| 回覆信箱(選填) | support@example.com | 客戶回覆的收件地址 |

- 點擊 Save,然後點擊 Send test 並輸入您自己的地址。
設定會儲存在具有存取限制的檔案中(smtp.json,權限 0600),且只有背景工作執行緒 nexcmp-vmd 會發送郵件;網頁服務僅負責將其加入佇列。
驗證
- 測試訊息已抵達收件匣(請一併檢查垃圾郵件)。在郵件原始碼中,確認
dkim=pass與spf=pass。 - 開啟 Support › Sent emails:每封訊息皆有狀態(queued、sent、failed)以及傳遞結果。失敗的訊息最多會重試 3 次。
- 在入口網站中註冊測試客戶,並確認驗證電子郵件已送達。
編輯電子郵件範本
Email templates 頁籤會依金鑰列出所有範本,以及其支援的語言(例如 verify_email、reset_password、vm_ready、invoice_paid、low_balance、topup_received、ticket_reply、scale_up …)。
- 點擊範本並選擇語言。
- 編輯主旨與內文。當訊息加入佇列時,系統會自動填入預留位置。
- 儲存。變更會立即套用至之後加入佇列的訊息。

限制與注意事項
- 每個安裝實例僅支援一個 SMTP 帳號。經銷商的客戶會透過同一個帳號接收郵件,除非另有設定經銷商專屬帳號。
- 供應商的發送限制適用於此;NexCMP 除了重試之外不會進行額外限速。
- 若未設定 SMTP,面板仍可運作,但客戶將無法完成註冊驗證與密碼重設。
故障排除
| 症狀 | 原因 | 修正方式 |
|---|---|---|
| 測試郵件從未送達 | 憑證錯誤、連接埠遭到封鎖、寄件者未獲授權 | 檢查 journalctl -u nexcmp-vmd 以查看 SMTP 錯誤;嘗試使用支援 STARTTLS 的 587 連接埠;向供應商驗證寄件者地址。 |
| 訊息被歸類為垃圾郵件 | SPF、DKIM 或 DMARC 遺失或設定不正確 | 發布供應商的記錄,並從該網域發送郵件。 |
| Sent emails 中顯示「failed」 | 供應商拒絕接收該訊息 | 展開該列以查看供應商的回應。 |
| 儲存後密碼欄位顯示空白 | 此為設計使然(僅能寫入) | 一旦儲存密碼,標籤就會顯示「current: set」。 |