---
title: "SMTP 完整指南：它是什么、如何工作与最佳实践"
description: "通过这份全面的指南掌握 SMTP。学习简单邮件传输协议的工作原理，对比 SMTP 与 API，配置身份验证（SPF、DKIM、DMARC），并为你的业务选择最佳 SMTP 服务商。"
url: https://tajo.io/zh-cn/blog/smtp-complete-guide/
markdown: https://tajo.io/zh-cn/blog/smtp-complete-guide.md
lang: zh-CN
author: "Set Noa"
author_url: https://tajo.io/zh-cn/set-noa/
published: 2026-03-08
updated: 2026-08-13
alternates: {en-US: /blog/smtp-complete-guide.md, bg-BG: /bg/blog/smtp-complete-guide.md, cs-CZ: /cz/blog/smtp-complete-guide.md, de-DE: /de/blog/smtp-complete-guide.md, da-DK: /dk/blog/smtp-complete-guide.md, es-ES: /es/blog/smtp-complete-guide.md, fr-FR: /fr/blog/smtp-complete-guide.md, el-GR: /gr/blog/smtp-complete-guide.md, hi-IN: /hi/blog/smtp-complete-guide.md, id-ID: /in/blog/smtp-complete-guide.md, hr-HR: /hr/blog/smtp-complete-guide.md, hu-HU: /hu/blog/smtp-complete-guide.md, it-IT: /it/blog/smtp-complete-guide.md, ja-JP: /jp/blog/smtp-complete-guide.md, ko-KR: /kr/blog/smtp-complete-guide.md, ar-SA: /ar/blog/smtp-complete-guide.md, nl-NL: /nl/blog/smtp-complete-guide.md, no-NO: /no/blog/smtp-complete-guide.md, pl-PL: /pl/blog/smtp-complete-guide.md, ro-RO: /ro/blog/smtp-complete-guide.md, ru-RU: /ru/blog/smtp-complete-guide.md, sv-SE: /se/blog/smtp-complete-guide.md, sl-SI: /sl/blog/smtp-complete-guide.md, sr-Latn-RS: /sr/blog/smtp-complete-guide.md, th-TH: /th/blog/smtp-complete-guide.md, tr-TR: /tr/blog/smtp-complete-guide.md, ur-PK: /ur/blog/smtp-complete-guide.md, vi-VN: /vi/blog/smtp-complete-guide.md, sk-SK: /sk/blog/smtp-complete-guide.md}
---

[邮件](https://tajo.io/zh-cn/blog/?category=email)

# SMTP 完整指南：它是什么、如何工作与最佳实践

通过这份全面的指南掌握 SMTP。学习简单邮件传输协议的工作原理，对比 SMTP 与 API，配置身份验证（SPF、DKIM、DMARC），并为你的业务选择最佳 SMTP 服务商。

SMTP server

什么是 SMTP 服务器？

SMTP 是发送邮件的标准协议。生产环境还需要配置 SPF、DKIM 和 DMARC，处理退信并检查发送日志。

[了解更多](https://tajo.io/zh-cn/blog/smtp-complete-guide/#%E4%BB%80%E4%B9%88%E6%98%AF-smtp)

SMTP 是互联网邮件通信的基础。无论是从个人收件箱发出的邮件，还是通过营销自动化平台发送的消息，每一封邮件都依赖 SMTP 到达目的地。对于管理邮件营销、事务性邮件或商业通信的人来说，理解 SMTP 的工作原理至关重要。

本指南全面覆盖 SMTP 的一切：从基本工作原理到高级身份验证方法、服务商对比以及常见问题排查。

## 什么是 SMTP？

**SMTP（简单邮件传输协议）** 是互联网上发送邮件的标准通信协议。SMTP 于 1982 年创建，定义了邮件消息从一台服务器传输到另一台服务器的方式，相当于数字世界的邮政服务。

当你发送邮件时，SMTP 负责处理出站传输。它将邮件从客户端推送到你的邮件服务器，再从你的邮件服务器推送到收件人的邮件服务器。该协议基于一套规则运行，确保邮件在全球不同邮件系统之间可靠传递。

### SMTP 的主要特性

- **推送协议**：SMTP 将邮件从发件人推送到收件人（与拉取邮件的 POP3/IMAP 不同）
- **基于文本**：命令和响应均为人类可读格式
- **面向连接**：使用 TCP/IP 实现可靠传输
- **存储转发**：消息在中间服务器暂存后转发
- **标准化**：RFC 5321 定义了当前 SMTP 规范

### SMTP 与其他邮件协议的对比

| 协议 | 用途 | 方向 |
| --- | --- | --- |
| SMTP | 发送邮件 | 出站 |
| POP3 | 检索邮件 | 入站 |
| IMAP | 访问邮件 | 入站（同步） |

SMTP 与 POP3 和 IMAP 协同工作。SMTP 负责发送出站邮件，POP3 或 IMAP 负责将入站邮件检索到收件箱。大多数邮件客户端使用 SMTP 发送邮件、使用 IMAP 接收邮件，共同提供完整的邮件体验。

## SMTP 的工作原理

理解 SMTP 流程有助于诊断送达问题并优化邮件基础设施。以下是邮件从发件人到收件人的逐步旅程。

### SMTP 通信流程

**第一步：建立连接**

邮件客户端（邮件用户代理）通过 TCP 端口 25、587 或 465 连接到出站邮件服务器（邮件传输代理），完成握手确认。

**第二步：SMTP 握手（HELO/EHLO）**

客户端使用 HELO 或 EHLO 命令发起通信：

```
Client: EHLO mail.example.com
Server: 250-smtp.provider.com Hello
```

EHLO（扩展 HELO）是支持身份验证和 TLS 加密等 SMTP 扩展的现代版本。

**第三步：发件人标识（MAIL FROM）**

客户端指定发件人邮箱地址：

```
Client: MAIL FROM:<sender@example.com>
Server: 250 OK
```

**第四步：收件人指定（RCPT TO）**

客户端标识一个或多个收件人：

```
Client: RCPT TO:<recipient@destination.com>
Server: 250 OK
```

**第五步：邮件内容传输（DATA）**

传输实际邮件内容：

```
Client: DATA
Server: 354 Start mail input
Client: Subject: Test Email
Client: From: sender@example.com
Client: To: recipient@destination.com
Client:
Client: This is the email body.
Client: .
Server: 250 OK
```

**第六步：断开连接（QUIT）**

会话优雅结束：

```
Client: QUIT
Server: 221 Bye
```

### 完整邮件旅程

1. **撰写**：在客户端（Gmail、Outlook 等）编写邮件
2. **提交**：客户端连接到你的 SMTP 服务器
3. **DNS 查询**：服务器查询收件人域名的 MX 记录
4. **传输**：你的服务器连接到收件人的 SMTP 服务器
5. **送达**：收件人服务器接收消息
6. **存储**：消息存储，等待收件人通过 POP3/IMAP 检索

### SMTP 端口详解

| 端口 | 名称 | 安全性 | 使用场景 |
| --- | --- | --- | --- |
| 25 | SMTP | 无/STARTTLS | 服务器间中继 |
| 587 | 提交 | STARTTLS | 客户端到服务器（推荐） |
| 465 | SMTPS | 隐式 TLS | 旧版安全提交 |
| 2525 | 替代 | STARTTLS | 587 被封锁时使用 |

**端口 587** 是从应用程序和邮件客户端发送邮件的推荐端口，需要身份验证并支持 STARTTLS 加密。

**端口 25** 是最初的 SMTP 端口，现在主要用于服务器间通信。许多 ISP 封锁出站 25 端口以防止垃圾邮件。

**端口 465** 曾短暂指定为 SMTPS（基于 SSL 的 SMTP），后被重新分配。部分服务商仍支持它以兼容旧版系统。

## SMTP 与邮件 API：如何选择？

现代应用有两种主要的程序化发送邮件方式：传统 SMTP 和基于 HTTP 的邮件 API。两种方式各有优劣。

### SMTP 方式

使用 SMTP 时，应用直接通过上述协议连接到 SMTP 服务器。

**优势：**

- 与任何邮件发送库通用兼容
- 可与现有邮件基础设施协作
- 无厂商锁定于特定 API 格式
- 基础用例设置简单
- 适用于 HTTP 访问受限的环境

**劣势：**

- 错误处理更复杂
- 无附加设置则跟踪能力有限
- 同步发送速度较慢
- 连接管理开销较大
- 实现高级功能较困难

### 邮件 API 方式

邮件 API 使用 HTTP/REST 发送消息，抽象了底层 SMTP 复杂性。

**优势：**

- 内置丰富跟踪（打开、点击、退件）
- 异步发送并支持 Webhook
- 通过 HTTP 状态码简化错误处理
- 原生支持高级功能（模板、定时发送）
- 更好的分析和报告能力
- 与现代应用集成更简便

**劣势：**

- 厂商专属实现
- 需要互联网连接（不支持本地中继）
- 可能有 API 速率限制
- 有 API 专属功能的学习曲线

### 何时使用 SMTP

- **旧版系统**：为 SMTP 设计的老旧应用
- **简单事务性邮件**：不需要跟踪的基础通知
- **本地部署软件**：受限网络环境中的应用
- **邮件客户端配置**：桌面或移动端邮件应用
- **WordPress 和 CMS**：许多插件期望使用 SMTP 凭据

### 何时使用邮件 API

- **营销自动化**：需要详细分析的活动
- **大量发送**：发送数千封邮件的应用
- **现代应用**：具有复杂邮件需求的 SaaS 产品
- **高级功能**：模板管理、A/B 测试、动态内容
- **实时跟踪**：需要即时送达反馈时

### 混合方式

许多组织同时使用两种方式：SMTP 用于旧版系统的简单事务性消息，邮件 API 用于营销活动和复杂自动化。Brevo 等平台同时支持两种方式，可根据具体场景灵活选择。

## SMTP 身份验证详解

SMTP 身份验证可防止未授权用户通过你的服务器发送邮件。没有身份验证，任何人都可以利用你的服务器发送垃圾邮件，损害你的发送声誉和送达率。

### SMTP 身份验证类型

**SMTP AUTH（RFC 4954）**

发送前需要提供用户名和密码的标准身份验证机制。

```
Client: AUTH LOGIN
Server: 334 VXNlcm5hbWU6
Client: [base64-encoded username]
Server: 334 UGFzc3dvcmQ6
Client: [base64-encoded password]
Server: 235 Authentication successful
```

**常见 AUTH 机制：**

| 机制 | 安全性 | 说明 |
| --- | --- | --- |
| PLAIN | 基础 | 明文用户名/密码（需要 TLS） |
| LOGIN | 基础 | 类似 PLAIN，旧版格式 |
| CRAM-MD5 | 较好 | 挑战响应，不传输明文密码 |
| DIGEST-MD5 | 良好 | 改进版挑战响应 |
| OAUTH2 | 最佳 | 基于令牌，不传输密码 |

**TLS/SSL 加密**

始终使用加密保护凭据：

- **STARTTLS**：将明文连接升级为加密连接（端口 587）
- **隐式 TLS**：连接从一开始即加密（端口 465）

**API 密钥 vs. 密码**

现代 SMTP 服务通常使用 API 密钥代替密码：

```
Username: apikey (literal string)
Password: your-api-key-here
```

API 密钥更安全，可以在不更改账户密码的情况下轮换，并且可以设置有限权限。

### 配置 SMTP 凭据

配置应用通过 SMTP 发送邮件时，通常需要以下信息：

1. **SMTP 主机**：服务器地址（例如 smtp.brevo.com）
2. **SMTP 端口**：通常使用 587 进行已认证提交
3. **用户名**：你的账户邮箱或 API 密钥标识符
4. **密码**：你的账户密码或 API 密钥
5. **加密**：启用 TLS/STARTTLS

Brevo SMTP 配置示例：

```
Host: smtp-relay.brevo.com
Port: 587
Username: your-email@example.com
Password: your-smtp-key
Encryption: STARTTLS
```

## 邮件身份验证：SPF、DKIM 和 DMARC

SMTP 身份验证（证明你可以使用该服务器）之外，邮件身份验证协议还能验证邮件确实来自声称的发件人。这些基于 DNS 的机制可防止伪造和网络钓鱼。

### SPF（发件人策略框架）

SPF 指定哪些 IP 地址和服务器被授权代表你的域名发送邮件。

**SPF 工作原理：**

1. 在域名 DNS 中发布 SPF 记录
2. 收件服务器收到你的邮件时检查 SPF
3. 如果发送 IP 与 SPF 记录匹配，邮件通过
4. 不匹配时，邮件可能被标记为垃圾邮件或拒绝

**SPF 记录示例：**

```
v=spf1 include:spf.brevo.com include:_spf.google.com -all
```

该记录允许 Brevo 和 Google 代表你的域名发送邮件，并拒绝所有其他发件人（-all）。

**SPF 语法：**

| 机制 | 说明 |
| --- | --- |
| include: | 信任另一个域名的 SPF |
| ip4: | 允许特定 IPv4 地址/范围 |
| ip6: | 允许特定 IPv6 地址/范围 |
| a | 允许域名 A 记录的 IP |
| mx | 允许域名 MX 服务器的 IP |
| -all | 硬拒绝其他所有发件人 |
| ~all | 软拒绝其他所有发件人 |
| ?all | 对其他所有发件人保持中立 |

**SPF 最佳实践：**

- 确认配置无误后使用 -all（硬拒绝）
- 控制在 10 次 DNS 查询以内，避免 permerror
- 包含所有合法发送来源
- 部署前用 SPF 验证工具测试

### DKIM（域名密钥识别邮件）

DKIM 为邮件添加加密签名，证明邮件在传输过程中未被篡改，并来自你的域名。

**DKIM 工作原理：**

1. 邮件服务器用私钥对出站邮件签名
2. 在 DNS 中发布对应的公钥
3. 收件服务器用你的公钥验证签名
4. 有效签名确认邮件完整性和来源

**DKIM DNS 记录示例：**

```
brevo._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4..."
```

选择器（brevo）标识使用哪个密钥，允许多个服务使用不同的 DKIM 密钥发送邮件。

**DKIM 组成部分：**

| 部分 | 说明 |
| --- | --- |
| 选择器 | 标识具体密钥（例如 brevo、google） |
| 公钥 | 发布于 DNS 的 RSA 密钥，用于验证 |
| 私钥 | 由发送服务器持有，用于签名 |
| 标头 | 添加到邮件中（DKIM-Signature） |

**DKIM 最佳实践：**

- 使用 2048 位 RSA 密钥（最低 1024 位）
- 定期轮换密钥
- 对重要标头签名（From、Subject、Date）
- 全面部署前测试签名

### DMARC（基于域名的消息认证、报告和一致性）

DMARC 在 SPF 和 DKIM 基础上增加了处理身份验证失败的策略和报告功能。

**DMARC 工作原理：**

1. 在 DNS 中发布 DMARC 策略
2. 收件服务器检查 SPF 和 DKIM 的一致性
3. 未通过的邮件按你的策略处理
4. 向你发送身份验证结果报告

**DMARC DNS 记录示例：**

```
_dmarc.example.com IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; pct=100"
```

**DMARC 策略：**

| 策略 | 处理方式 |
| --- | --- |
| p=none | 仅监控，对失败不采取行动 |
| p=quarantine | 将失败邮件发送到垃圾邮件文件夹 |
| p=reject | 完全拦截失败邮件 |

**DMARC 实施路径：**

1. **从 p=none 开始**：在不影响送达的情况下监控
2. **分析报告**：识别身份验证失败的合法来源
3. **修复问题**：添加缺失的 SPF include，配置 DKIM
4. **切换到 p=quarantine**：开始软性执行保护
5. **升级到 p=reject**：确认无误后实现最大保护

**DMARC 最佳实践：**

- 从 p=none 和 rua（汇总报告）开始
- 执行策略前监控报告 2 至 4 周
- 确保所有合法发件人通过 SPF 或 DKIM 并保持一致性
- 执行时逐步提高 pct（百分比）

### 身份验证一致性

DMARC 要求 From 标头中的域名与通过 SPF/DKIM 的域名保持”一致性”：

- **SPF 一致性**：Return-Path 域名与 From 域名匹配
- **DKIM 一致性**：DKIM 签名域名与 From 域名匹配

这可防止攻击者利用你的 SPF/DKIM 基础设施发送伪造邮件。

## 最佳 SMTP 服务与服务商

选择合适的 SMTP 服务商会影响送达率、成本和功能。以下是 2026 年的主流选择。

### Brevo（前身为 Sendinblue）

**最适合：** 电商，事务性邮件与营销邮件组合需求

Brevo 同时提供 SMTP 中继和 API 访问，定价有竞争力。其优势在于将事务性邮件与营销自动化、CRM 和多渠道通信（短信、WhatsApp）相结合。

| 功能 | 详情 |
| --- | --- |
| 免费套餐 | 每天 300 封 |
| 定价 | 从 $9/月起，5,000 封邮件 |
| SMTP 中继 | 支持 |
| API | 支持（REST） |
| 送达率工具 | SPF、DKIM、可选专用 IP |
| 分析 | 打开率、点击率、退件率、实时数据 |

**SMTP 配置：**

```
Host: smtp-relay.brevo.com
Port: 587
Authentication: Required
Encryption: STARTTLS
```

### Amazon SES（简单邮件服务）

**最适合：** 使用 AWS 基础设施的大量发送者

Amazon SES 为高发送量提供极低定价，并与其他 AWS 服务无缝集成。

| 功能 | 详情 |
| --- | --- |
| 免费套餐 | 每月 62,000 封（从 EC2 发送） |
| 定价 | 每 1,000 封 $0.10 |
| SMTP 中继 | 支持 |
| API | 支持（AWS SDK） |
| 送达率工具 | 完整（需手动配置） |
| 分析 | 与 CloudWatch 集成 |

**注意事项：**

- 需要一定技术能力才能正确配置
- 声誉管理由用户自行负责
- 最适合熟悉 AWS 的开发者

### SendGrid（Twilio）

**最适合：** 需要强大 API 和可扩展性的开发者

SendGrid 提供面向开发者的 API，文档完善，适合成长中的企业。

| 功能 | 详情 |
| --- | --- |
| 免费套餐 | 每天 100 封 |
| 定价 | 从 $19.95/月起，50,000 封邮件 |
| SMTP 中继 | 支持 |
| API | 支持（REST、Webhook） |
| 送达率工具 | 完整套件 |
| 分析 | 全面仪表板 |

### Mailgun

**最适合：** 需要详细日志的事务性邮件

Mailgun 专注于事务性和开发者场景，提供强大的日志搜索和验证功能。

| 功能 | 详情 |
| --- | --- |
| 免费套餐 | 试用版，发送量有限 |
| 定价 | 从 $15/月起，10,000 封邮件 |
| SMTP 中继 | 支持 |
| API | 支持（REST） |
| 送达率工具 | 邮件验证、日志 |
| 分析 | 可搜索日志、统计数据 |

### Postmark

**最适合：** 需要最快送达速度的事务性邮件

Postmark 专注于事务性邮件，拥有业界领先的送达速度和严格的反垃圾邮件政策。

| 功能 | 详情 |
| --- | --- |
| 免费套餐 | 无（提供试用） |
| 定价 | 从 $15/月起，10,000 封邮件 |
| SMTP 中继 | 支持 |
| API | 支持（REST） |
| 送达率工具 | 含专用 IP |
| 分析 | 实时、详细 |

### 服务商对比汇总

| 服务商 | 最适合 | 免费套餐 | 起始价格 |
| --- | --- | --- | --- |
| Brevo | 一体化营销 | 300 封/天 | $9/月 |
| Amazon SES | 大量发送，AWS 用户 | 62,000 封/月 | $0.10/千封 |
| SendGrid | 面向开发者 | 100 封/天 | $19.95/月 |
| Mailgun | 事务性 + 日志 | 试用 | $15/月 |
| Postmark | 快速事务性 | 试用 | $15/月 |

### 如何选择合适的服务商

**考量以下因素：**

1. **发送量**：每月发送多少封邮件？
2. **邮件类型**：营销邮件、事务性邮件，还是两者都有？
3. **技术资源**：能否处理复杂的配置？
4. **所需功能**：模板、分析、A/B 测试？
5. **预算**：每月邮件预算是多少？
6. **集成需求**：需要连接哪些系统？

## 如何配置 SMTP

SMTP 的配置因使用场景而异。以下是常见场景的配置指南。

### 在 WordPress 中配置 SMTP

大多数 WordPress 网站需要 SMTP 才能可靠发送邮件。默认的 PHP mail() 函数经常失败或落入垃圾邮件。

**第一步：安装 SMTP 插件**

常用选项：

- WP Mail SMTP
- Post SMTP
- Easy WP SMTP

**第二步：配置插件**

使用 WP Mail SMTP 配合 Brevo：

```
From Email: noreply@yourdomain.com
From Name: Your Site Name
Mailer: Other SMTP
SMTP Host: smtp-relay.brevo.com
Encryption: TLS
SMTP Port: 587
Authentication: On
SMTP Username: your-email@example.com
SMTP Password: your-brevo-smtp-key
```

**第三步：测试连接**

发送测试邮件验证配置。如果测试邮件未到达，检查垃圾邮件文件夹。

### 在应用中配置 SMTP

对于自定义应用，使用编程语言的邮件库。

**Node.js（Nodemailer）：**

```javascript
const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  host: 'smtp-relay.brevo.com',
  port: 587,
  secure: false,
  auth: {
    user: 'your-email@example.com',
    pass: 'your-smtp-key'
  }
});

await transporter.sendMail({
  from: 'sender@example.com',
  to: 'recipient@example.com',
  subject: 'Test Email',
  text: 'Hello from Node.js!'
});
```

**Python（smtplib）：**

```python
import smtplib
from email.mime.text import MIMEText

smtp_server = "smtp-relay.brevo.com"
port = 587
username = "your-email@example.com"
password = "your-smtp-key"

msg = MIMEText("Hello from Python!")
msg['Subject'] = "Test Email"
msg['From'] = "sender@example.com"
msg['To'] = "recipient@example.com"

with smtplib.SMTP(smtp_server, port) as server:
    server.starttls()
    server.login(username, password)
    server.send_message(msg)
```

**PHP（PHPMailer）：**

```php
use PHPMailer\PHPMailer\PHPMailer;

$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp-relay.brevo.com';
$mail->SMTPAuth = true;
$mail->Username = 'your-email@example.com';
$mail->Password = 'your-smtp-key';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->setFrom('sender@example.com', 'Sender Name');
$mail->addAddress('recipient@example.com');
$mail->Subject = 'Test Email';
$mail->Body = 'Hello from PHP!';

$mail->send();
```

### 配置 DNS 记录

发送前，配置身份验证 DNS 记录。

**第一步：添加 SPF 记录**

在域名根目录创建 TXT 记录：

```
Type: TXT
Host: @
Value: v=spf1 include:spf.brevo.com ~all
```

如果已有 SPF 记录，添加 include 声明：

```
v=spf1 include:spf.brevo.com include:_spf.google.com ~all
```

**第二步：添加 DKIM 记录**

使用服务商提供的选择器创建 TXT 记录：

```
Type: TXT
Host: brevo._domainkey
Value: v=DKIM1; k=rsa; p=[your-public-key]
```

**第三步：添加 DMARC 记录**

从监控模式开始：

```
Type: TXT
Host: _dmarc
Value: v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
```

**第四步：验证配置**

使用以下工具：

- MXToolbox（mxtoolbox.com）
- Mail Tester（mail-tester.com）
- DMARC Analyzer

## 常见 SMTP 错误与解决方案

SMTP 错误遵循标准化编号系统。理解这些错误代码有助于快速诊断送达问题。

### SMTP 错误代码分类

| 范围 | 类别 | 含义 |
| --- | --- | --- |
| 2xx | 成功 | 命令已接受 |
| 4xx | 临时失败 | 稍后重试 |
| 5xx | 永久失败 | 请勿重试 |

### 常见 SMTP 错误与解决方案

**421 服务不可用**

服务器暂时无法处理请求。

原因：

- 服务器过载
- 维护窗口期
- 连接数达到上限

解决方案：

- 等待后重试
- 检查服务商状态页
- 实现带退避的重试逻辑

**450 邮箱不可用**

收件人邮箱临时问题。

原因：

- 邮箱已满
- 服务器策略限制
- 灰名单过滤

解决方案：

- 延迟后重试
- 灰名单第二次尝试后通常会解决
- 如持续发生，联系收件人

**451 本地错误**

收件服务器处理错误。

原因：

- 服务器配置问题
- 资源耗尽
- 临时策略封锁

解决方案：

- 使用指数退避重试
- 检查 IP 是否被临时封锁
- 等待服务器恢复

**500 语法错误**

命令无法识别。

原因：

- SMTP 命令格式错误
- 不支持的扩展
- 编码问题

解决方案：

- 检查命令语法
- 确保正确的换行符（CRLF）
- 验证客户端兼容性

**501 参数语法错误**

命令可识别但参数无效。

原因：

- 邮件地址格式无效
- 缺少必需参数
- 编码问题

解决方案：

- 发送前验证邮件地址
- 检查特殊字符
- 检查参数格式

**550 邮箱不存在**

收件人地址不存在。

原因：

- 邮件地址拼写错误
- 账户已删除
- 域名不接受邮件

解决方案：

- 验证收件人地址
- 从名单中移除（硬退件）
- 实施邮件地址验证

**551 用户不在本服务器**

收件人不在此服务器上。

原因：

- 需要邮件转发
- 联系了错误的服务器
- MX 记录过时

解决方案：

- 检查 MX 记录解析
- 按照转发说明操作
- 更新 DNS 缓存

**552 邮件过大**

邮件超出大小限制。

原因：

- 附件过大
- 收件服务器限制
- 内嵌图片过大

解决方案：

- 压缩或移除附件
- 改用文件共享链接
- 检查收件方的大小限制

**553 邮箱名称无效**

地址格式被拒绝。

原因：

- 地址中包含无效字符
- 域名格式错误
- 策略限制

解决方案：

- 验证邮件格式
- 检查拼写错误
- 使用符合 RFC 标准的地址

**554 事务失败**

通常与垃圾邮件相关的通用拒绝。

原因：

- 触发垃圾邮件过滤器
- 发送 IP 被列入黑名单
- 内容违反策略
- 缺少身份验证

解决方案：

- 检查黑名单状态
- 审查邮件内容
- 验证身份验证配置（SPF、DKIM、DMARC）
- 检查发件人声誉

### 诊断 SMTP 问题

**第一步：查看错误信息**

记录完整的 SMTP 响应，而不仅仅是错误代码。代码后的文字提供了重要上下文。

**第二步：测试连接**

验证能否连接到 SMTP 服务器：

```bash
telnet smtp-relay.brevo.com 587
```

或使用 openssl 测试 TLS：

```bash
openssl s_client -starttls smtp -connect smtp-relay.brevo.com:587
```

**第三步：验证身份验证**

独立于应用，使用邮件客户端或命令行工具测试凭据。

**第四步：检查 DNS**

验证身份验证记录：

```bash
dig TXT yourdomain.com
dig TXT _dmarc.yourdomain.com
dig TXT selector._domainkey.yourdomain.com
```

**第五步：检查黑名单**

检查发送 IP 是否被列入黑名单：

- MXToolbox 黑名单检查
- Spamhaus
- Barracuda Reputation

## SMTP 最佳实践

遵循以下实践，最大化送达率并维护良好的发件人声誉。

### 身份验证

- **始终使用 SMTP AUTH**：绝不运行开放中继
- **启用 TLS**：对所有连接加密（端口 587 使用 STARTTLS）
- **使用 API 密钥**：优先使用 API 密钥而非账户密码
- **定期轮换凭据**：定期更换密钥
- **三者同时实施**：SPF、DKIM 和 DMARC 缺一不可

### 发送实践

- **预热新 IP**：在新发送 IP 上逐步增加发送量
- **保持一致的发送节奏**：维持规律的发送频率
- **名单清洁**：移除退件和不活跃订阅者
- **及时处理退订**：立即执行退出请求
- **监控声誉**：跟踪发件人评分和黑名单状态

### 技术实现

- **处理退件**：处理并分类退件通知
- **实施重试逻辑**：对临时失败使用指数退避
- **记录所有日志**：保留详细日志以便排查
- **监控送达**：跟踪送达率和延迟
- **使用连接池**：复用连接提高效率

### 内容指南

- **避免垃圾邮件触发词**：注意常见的垃圾邮件关键词
- **均衡文字与图片比例**：不要发送纯图片邮件
- **包含退订链接**：大多数司法管辖区的法律要求
- **使用可识别的发件人名称**：收件人应能认出你是谁
- **发送前测试**：正式发送前检查垃圾邮件评分

## 总结

SMTP 依然是全球邮件通信的基础协议。无论发送事务性通知、营销活动还是内部通信，理解 SMTP 有助于构建可靠的邮件基础设施。

本指南的核心要点：

- **SMTP 是发送协议**：负责将邮件从发件人推送到收件服务器
- **身份验证至关重要**：使用 SMTP AUTH、TLS，并实施 SPF/DKIM/DMARC
- **选择合适的服务商**：将服务商能力与你的发送量和需求匹配
- **监控与维护**：跟踪送达率、处理退件、保持名单清洁
- **SMTP 与 API**：SMTP 用于兼容性，API 用于高级功能

对于电商企业而言，将 Brevo 这样可靠的 SMTP 服务商与完善的客户数据集成相结合，确保事务性邮件能到达客户，同时营销活动推动持续互动。

准备提升邮件送达率了吗？先按本指南的 SPF、DKIM 和 DMARC 指引审计当前身份验证配置，再考虑当前服务商是否满足你在发送量、功能和可靠性方面的需求。

## Tajo 的定位

Tajo 是由智能体驱动的集成构建器。服务商照旧用。其余的由智能体连接，每个同步都由你批准。Tajo 目前处于抢先体验阶段。 [申请抢先体验](https://tajo.io/zh-cn/#early-access)

## 常见问题

**什么是 SMTP 服务器？**

通过这份全面的指南掌握 SMTP。学习简单邮件传输协议的工作原理，对比 SMTP 与 API，配置身份验证（SPF、DKIM、DMARC），并为你的业务选择最佳 SMTP 服务商。

**如何开始使用 SMTP 服务器？**

从基础知识入手：理解核心概念、选择合适工具、按步骤实施。本指南从入门到进阶全面覆盖。

**SMTP 服务器有哪些最佳工具？**

最佳工具取决于你的预算和需求。Brevo 提供涵盖邮件、短信、CRM 和自动化的全面免费套餐。详细推荐见本指南。

**SMTP 与邮件托管有什么区别？**

SMTP 专门用于发送邮件。邮件托管包含发送（SMTP）和接收（POP3/IMAP）以及存储和管理功能。可以在其他地方托管邮件的同时使用第三方 SMTP 服务。

**可以用 Gmail SMTP 做商业用途吗？**

Gmail 提供 SMTP 访问，但有限制。免费版每天允许 500 封，Google Workspace 提升至 2,000 封。对于更高发送量或更好的送达率控制，建议使用 Brevo 等专用 SMTP 服务。

**为什么我的邮件进了垃圾邮件？**

常见原因包括： - SPF/DKIM/DMARC 缺失或配置错误 - 新 IP 未经预热直接发送 - 发件人声誉差 - 内容类似垃圾邮件 - 发送至无效地址 - 投诉率过高 先检查身份验证配置，再审查内容和发送实践。

**应该使用哪个 SMTP 端口？**

推荐使用端口 587 进行客户端到服务器的邮件提交。它需要身份验证并支持 STARTTLS 加密。端口 25 用于服务器间中继，通常被 ISP 封锁。

**通过 SMTP 可以发送多少封邮件？**

限制取决于服务商： - Gmail：每天 500 至 2,000 封 - Brevo 免费版：每天 300 封 - Amazon SES：每天 50,000 封（需审批） - 专用服务：通常按定价套餐不限量

**SMTP 需要专用 IP 吗？**

并非必须。良好实践下，共享 IP 在中等发送量时表现良好。专用 IP 适合每月发送量超过 10 万封、希望完全掌控声誉的高量发送者。大多数服务商提供专用 IP 升级选项。

**什么是 SMTP 中继？**

SMTP 中继是指你的邮件服务器通过另一台服务器转发消息进行送达。当本地服务器无法直接发送（端口被封锁、声誉差）或使用 Brevo 等服务提升送达率时，SMTP 中继非常有用。

**如何测试 SMTP 配置？**

使用以下方法： 1. 通过应用发送测试邮件 2. 使用 Mail Tester 等在线工具检查身份验证 3. 通过 telnet 或 openssl 手动连接 4. 查看服务商仪表板中的送达日志 5. 发送至报告身份验证结果的测试地址

**SPF 或 DKIM 验证失败会怎样？**

没有 DMARC 时，SPF/DKIM 失败可能导致邮件被标记，但不一定被拒绝。当 DMARC 设置为 quarantine 或 reject 时，失败将导致邮件进入垃圾邮件文件夹或被拦截。始终监控 DMARC 报告以发现身份验证问题。

**SMTP 能处理附件吗？**

可以。SMTP 以编码形式传输附件（二进制文件通常使用 base64 编码）。但大附件可能触及服务器大小限制。对于超过几 MB 的文件，建议改用云存储链接。

## 相关文章

### [免费 SMTP 中继指南：限额、设置、服务商适配和升级信号（2026）](https://tajo.io/zh-cn/blog/free-smtp-relay-guide/)

2026年3月26日 · 8 分钟阅读

9 个章节

### [WP Mail SMTP 指南：WordPress 配置、发信服务、DNS、测试、日志与 QA（2026）](https://tajo.io/zh-cn/blog/wp-mail-smtp-guide/)

2026年3月26日 · 6 分钟阅读

14 个章节

### [邮件 API 完整指南：如何在应用中通过程序发送邮件（2026）](https://tajo.io/zh-cn/blog/email-api-guide/)

2026年3月25日 · 9 分钟阅读

15 个章节
