SMTP 完整指南:它是什么、如何工作与最佳实践
通过这份全面的指南掌握 SMTP。学习简单邮件传输协议的工作原理,对比 SMTP 与 API,配置身份验证(SPF、DKIM、DMARC),并为你的业务选择最佳 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.comServer: 250-smtp.provider.com HelloEHLO(扩展 HELO)是支持身份验证和 TLS 加密等 SMTP 扩展的现代版本。
第三步:发件人标识(MAIL FROM)
客户端指定发件人邮箱地址:
Client: MAIL FROM:<[email protected]>Server: 250 OK第四步:收件人指定(RCPT TO)
客户端标识一个或多个收件人:
Client: RCPT TO:<[email protected]>Server: 250 OK第五步:邮件内容传输(DATA)
传输实际邮件内容:
Client: DATAServer: 354 Start mail inputClient: Subject: Test EmailClient: From: [email protected]Client: To: [email protected]Client:Client: This is the email body.Client: .Server: 250 OK第六步:断开连接(QUIT)
会话优雅结束:
Client: QUITServer: 221 Bye完整邮件旅程
- 撰写:在客户端(Gmail、Outlook 等)编写邮件
- 提交:客户端连接到你的 SMTP 服务器
- DNS 查询:服务器查询收件人域名的 MX 记录
- 传输:你的服务器连接到收件人的 SMTP 服务器
- 送达:收件人服务器接收消息
- 存储:消息存储,等待收件人通过 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 LOGINServer: 334 VXNlcm5hbWU6Client: [base64 编码的用户名]Server: 334 UGFzc3dvcmQ6Client: [base64 编码的密码]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(字面字符串)Password: your-api-key-hereAPI 密钥更安全,可以在不更改账户密码的情况下轮换,并且可以设置有限权限。
配置 SMTP 凭据
配置应用通过 SMTP 发送邮件时,通常需要以下信息:
- SMTP 主机:服务器地址(例如 smtp.brevo.com)
- SMTP 端口:通常使用 587 进行已认证提交
- 用户名:你的账户邮箱或 API 密钥标识符
- 密码:你的账户密码或 API 密钥
- 加密:启用 TLS/STARTTLS
Brevo SMTP 配置示例:
Host: smtp-relay.brevo.comPort: 587Username: [email protected]Password: your-smtp-keyEncryption: STARTTLS邮件身份验证:SPF、DKIM 和 DMARC
SMTP 身份验证(证明你可以使用该服务器)之外,邮件身份验证协议还能验证邮件确实来自声称的发件人。这些基于 DNS 的机制可防止伪造和网络钓鱼。
SPF(发件人策略框架)
SPF 指定哪些 IP 地址和服务器被授权代表你的域名发送邮件。
SPF 工作原理:
- 在域名 DNS 中发布 SPF 记录
- 收件服务器收到你的邮件时检查 SPF
- 如果发送 IP 与 SPF 记录匹配,邮件通过
- 不匹配时,邮件可能被标记为垃圾邮件或拒绝
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 工作原理:
- 邮件服务器用私钥对出站邮件签名
- 在 DNS 中发布对应的公钥
- 收件服务器用你的公钥验证签名
- 有效签名确认邮件完整性和来源
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 工作原理:
- 在 DNS 中发布 DMARC 策略
- 收件服务器检查 SPF 和 DKIM 的一致性
- 未通过的邮件按你的策略处理
- 向你发送身份验证结果报告
DMARC DNS 记录示例:
_dmarc.example.com IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100"DMARC 策略:
| 策略 | 处理方式 |
|---|---|
| p=none | 仅监控,对失败不采取行动 |
| p=quarantine | 将失败邮件发送到垃圾邮件文件夹 |
| p=reject | 完全拦截失败邮件 |
DMARC 实施路径:
- 从 p=none 开始:在不影响送达的情况下监控
- 分析报告:识别身份验证失败的合法来源
- 修复问题:添加缺失的 SPF include,配置 DKIM
- 切换到 p=quarantine:开始软性执行保护
- 升级到 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.comPort: 587Authentication: RequiredEncryption: STARTTLS使用 Tajo 将 Shopify 店铺与 Brevo 集成后,在可靠 SMTP 送达订单确认、发货通知和收据等事务性邮件的同时,还能自动同步客户数据。
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/月 |
如何选择合适的服务商
考量以下因素:
- 发送量:每月发送多少封邮件?
- 邮件类型:营销邮件、事务性邮件,还是两者都有?
- 技术资源:能否处理复杂的配置?
- 所需功能:模板、分析、A/B 测试?
- 预算:每月邮件预算是多少?
- 集成需求:需要连接哪些系统?
对于使用 Shopify 且有营销自动化需求的电商企业,Brevo 结合 Tajo 提供完整解决方案:客户数据同步、事务性邮件、营销活动和多渠道通信,整合在一个统一的技术栈中。
如何配置 SMTP
SMTP 的配置因使用场景而异。以下是常见场景的配置指南。
在 WordPress 中配置 SMTP
大多数 WordPress 网站需要 SMTP 才能可靠发送邮件。默认的 PHP mail() 函数经常失败或落入垃圾邮件。
第一步:安装 SMTP 插件
常用选项:
- WP Mail SMTP
- Post SMTP
- Easy WP SMTP
第二步:配置插件
使用 WP Mail SMTP 配合 Brevo:
From Email: [email protected]From Name: Your Site NameMailer: Other SMTPSMTP Host: smtp-relay.brevo.comEncryption: TLSSMTP Port: 587Authentication: OnSMTP Username: [email protected]SMTP Password: your-brevo-smtp-key第三步:测试连接
发送测试邮件验证配置。如果测试邮件未到达,检查垃圾邮件文件夹。
在应用中配置 SMTP
对于自定义应用,使用编程语言的邮件库。
Node.js(Nodemailer):
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({ host: 'smtp-relay.brevo.com', port: 587, secure: false, auth: { pass: 'your-smtp-key' }});
await transporter.sendMail({ subject: 'Test Email', text: 'Hello from Node.js!'});Python(smtplib):
import smtplibfrom email.mime.text import MIMEText
smtp_server = "smtp-relay.brevo.com"port = 587username = "[email protected]"password = "your-smtp-key"
msg = MIMEText("Hello from Python!")msg['Subject'] = "Test Email"
with smtplib.SMTP(smtp_server, port) as server: server.starttls() server.login(username, password) server.send_message(msg)PHP(PHPMailer):
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer(true);$mail->isSMTP();$mail->Host = 'smtp-relay.brevo.com';$mail->SMTPAuth = true;$mail->Password = 'your-smtp-key';$mail->SMTPSecure = 'tls';$mail->Port = 587;
$mail->Subject = 'Test Email';$mail->Body = 'Hello from PHP!';
$mail->send();配置 DNS 记录
发送前,配置身份验证 DNS 记录。
第一步:添加 SPF 记录
在域名根目录创建 TXT 记录:
Type: TXTHost: @Value: v=spf1 include:spf.brevo.com ~all如果已有 SPF 记录,添加 include 声明:
v=spf1 include:spf.brevo.com include:_spf.google.com ~all第二步:添加 DKIM 记录
使用服务商提供的选择器创建 TXT 记录:
Type: TXTHost: brevo._domainkeyValue: v=DKIM1; k=rsa; p=[your-public-key]第三步:添加 DMARC 记录
从监控模式开始:
Type: TXTHost: _dmarcValue: v=DMARC1; p=none; rua=mailto:[email protected]第四步:验证配置
使用以下工具:
- 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 服务器:
telnet smtp-relay.brevo.com 587或使用 openssl 测试 TLS:
openssl s_client -starttls smtp -connect smtp-relay.brevo.com:587第三步:验证身份验证
独立于应用,使用邮件客户端或命令行工具测试凭据。
第四步:检查 DNS
验证身份验证记录:
dig TXT yourdomain.comdig TXT _dmarc.yourdomain.comdig 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)和接收(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 配置?
使用以下方法:
- 通过应用发送测试邮件
- 使用 Mail Tester 等在线工具检查身份验证
- 通过 telnet 或 openssl 手动连接
- 查看服务商仪表板中的送达日志
- 发送至报告身份验证结果的测试地址
SPF 或 DKIM 验证失败会怎样?
没有 DMARC 时,SPF/DKIM 失败可能导致邮件被标记,但不一定被拒绝。当 DMARC 设置为 quarantine 或 reject 时,失败将导致邮件进入垃圾邮件文件夹或被拦截。始终监控 DMARC 报告以发现身份验证问题。
SMTP 能处理附件吗?
可以。SMTP 以编码形式传输附件(二进制文件通常使用 base64 编码)。但大附件可能触及服务器大小限制。对于超过几 MB 的文件,建议改用云存储链接。
总结
SMTP 依然是全球邮件通信的基础协议。无论发送事务性通知、营销活动还是内部通信,理解 SMTP 有助于构建可靠的邮件基础设施。
本指南的核心要点:
- SMTP 是发送协议:负责将邮件从发件人推送到收件服务器
- 身份验证至关重要:使用 SMTP AUTH、TLS,并实施 SPF/DKIM/DMARC
- 选择合适的服务商:将服务商能力与你的发送量和需求匹配
- 监控与维护:跟踪送达率、处理退件、保持名单清洁
- SMTP 与 API:SMTP 用于兼容性,API 用于高级功能
对于电商企业而言,将 Brevo 这样可靠的 SMTP 服务商与完善的客户数据集成相结合,确保事务性邮件能到达客户,同时营销活动推动持续互动。Tajo 的 Shopify 集成自动将客户数据同步至 Brevo,为事务性和营销邮件的有效通信奠定基础。
准备提升邮件送达率了吗?先按本指南的 SPF、DKIM 和 DMARC 指引审计当前身份验证配置,再考虑当前服务商是否满足你在发送量、功能和可靠性方面的需求。