---
title: SMTP 和电子邮件模板
description: 配置发信电子邮件 (SMTP)、发送测试消息、编辑各语言的电子邮件模板并查看投递日志。
url: https://nexcmp.com/zh-cn/docs/administration/smtp-and-emails/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# SMTP 和电子邮件模板 {#smtp-and-e-mail-templates}

> **后台位置：** System › Settings › Email (`/settings/email`) — 标签页 **SMTP** 和 **Email templates**。投递日志：Overview › Support › Sent emails (`/support/emails`)。

## 功能说明 {#what-it-does}

NexCMP 发送的电子邮件包括注册验证、“虚拟机就绪”（带初始密码）、账单、余额不足、续费、充值、工单回复等。所有邮件均通过**您提供的单个 SMTP 账号**发送。消息和模板支持 16 种语言，系统会自动使用客户对应的语言。

## 前提条件 {#requirements}

| 项目 | 要求 |
|---|---|
| SMTP 服务器 | 任意提供商的主机、端口和凭据（您自己的服务器、Brevo、Amazon SES、Mailgun、Google Workspace 等） |
| 网络 | 从 NexCMP 服务器到 SMTP 主机及端口的出站 TCP（587 STARTTLS、465 TLS 或 25） |
| 发件人域 | 您控制的域，且已为该提供商发布 **SPF 和 DKIM** 记录以及 DMARC 记录 |
| 权限 | SMTP 账号必须被允许以 **From** 地址发送邮件 |

::: warning 投递率
诸如“虚拟机就绪”之类的电子邮件包含密码。如果发件人域的 SPF/DKIM/DMARC 与 SMTP 提供商不匹配，邮件将会进入垃圾箱。页面会对此进行提醒。
:::

## 准备电子邮件提供商 {#prepare-the-e-mail-provider}

1. 在提供商的面板中添加并验证您的发信域（例如 `example.com`）。
2. 发布提供商显示的 SPF、DKIM 和 DMARC DNS 记录。
3. 创建一个 SMTP 用户（或 API-SMTP 密钥）并记录主机、端口、用户名和密码。

## 在NexCMP中连接 {#connect-in-nexcmp}

1. 打开 **System › Settings › Email**，切换至标签页 **SMTP**。
2. 填写表单：

| 字段 | 示例 | 备注 |
|---|---|---|
| Host | `smtp.example.net` | SMTP 服务器 |
| 端口 | `587` | |
| Security | STARTTLS (587) | 选择提供商要求的模式 |
| Username | `smtp-user` | |
| 密码 | (hidden) | 只写：页面仅显示是否已设置 |
| From email | `no-reply@example.com` | 必须在提供商处获得授权 |
| From name | `Example Cloud` | 默认为您的品牌名称 |
| Reply-To (optional) | `support@example.com` | 客户回复的接收地址 |

![Settings 中 Email 的 SMTP 标签页，包含主机、端口、安全类型、用户名、发件人字段以及“发送测试”按钮](https://nexcmp.com/zh-cn/docs/images/administration/smtp-and-emails-01-smtp.webp)

3. 点击 **Save**，然后点击 **Send test** 并输入您自己的地址。

设置存储在权限受限的文件中（`smtp.json`，模式0600），且只有后台工作进程`nexcmp-vmd`发送邮件；Web服务只负责将其加入队列。

## 验证 {#verify}

- 测试消息将到达收件箱（请同时检查垃圾邮件）。在邮件源码中，确认`dkim=pass`和`spf=pass`。
- 打开**Support › Sent emails**：每条消息都有一个状态（已排队、已发送、已失败）以及投递结果。失败的消息最多会重试3次。
- 在门户中注册一个测试客户，并确认验证邮件已送达。

## 编辑邮件模板 {#edit-e-mail-templates}

**Email templates**标签页列出了按键名分类的每个模板，以及它所支持的语言（例如`verify_email`、`reset_password`、`vm_ready`、`invoice_paid`、`low_balance`、`topup_received`、`ticket_reply`、`scale_up`等）。

1. 点击一个模板并选择一种语言。
2. 编辑主题和正文。占位符会在邮件入队时被填充。
3. 保存。此更改将**立即**生效于之后入队的邮件。

![Email templates标签页，列出了模板键名及其语言](https://nexcmp.com/zh-cn/docs/images/administration/smtp-and-emails-02-templates.webp)

## 限制与注意事项 {#limits-and-notes}

- 每台安装实例一个SMTP账号。除非另有配置，否则分销商的客户将通过同一账号接收邮件。
- 供应商发送限制适用；NexCMP除重试外不进行限速。
- 没有SMTP面板也能工作，但客户无法完成注册验证和密码重置。

## 故障排查 {#troubleshooting}

| 症状 | 原因 | 解决办法 |
|---|---|---|
| 测试邮件从未送达 | 凭据错误、端口被封、发件人未授权 | 检查`journalctl -u nexcmp-vmd`以获取SMTP错误；尝试使用带STARTTLS的587端口；向供应商核实From地址。 |
| 邮件进入垃圾箱 | SPF/DKIM/DMARC缺失或不匹配 | 发布供应商的记录并从该域名发送。 |
| Sent emails中显示“failed” | 供应商拒绝了该消息 | 打开该行查看供应商的响应。 |
| 保存后密码字段看起来为空 | 设计如此（只写） | 存储密码后，标签将显示“current: set”。 |
