许多站长使用自己的VPS或虚拟机发送网站通知、注册确认或系统邮件时,经常发现这些邮件直接进了收件人的垃圾箱。这不仅影响用户体验,也严重损害了你的域名信誉。
根本原因在于,主流的邮件服务提供商(如Gmail、Outlook)会严格检查邮件的身份认证信息。如果你的域名缺乏SPF和DKIM记录,收件服务器无法确认邮件是否真的由你授权发送,因此会将其视为垃圾邮件或可疑邮件。
配置SPF和DKIM是提升邮件送达率最关键的两步。
第一步:配置SPF(Sender Policy Framework)
SPF是一种TXT记录,它定义了哪些IP地址被允许代表你的域名发送邮件。如果邮件的发送IP不在SPF记录列表中,它很可能被拒绝或标记为垃圾邮件。
1. 确定你的发送IP
如果你的VPS IP是 192.0.2.10,你需要将这个IP地址添加到你的SPF记录中。
2. 添加SPF记录
在你的域名DNS管理界面(例如 Cloudflare、阿里云或你的注册商),添加一条TXT记录。
示例配置(假设你只用VPS IP发送邮件):
| 字段 | 值 |
|---|---|
| 类型 | TXT |
| 主机记录 | @ 或 yourdomain.com |
| 记录值 | v=spf1 ip4:192.0.2.10 -all |
如果你还使用了第三方服务(如Google Workspace、SendGrid)发送邮件,你需要使用 include 关键字:
v=spf1 ip4:192.0.2.10 include:_spf.google.com ~all
语法解释:
* v=spf1: 声明使用SPF版本1。
* ip4:192.0.2.10: 授权该IPv4地址。
* include:_spf.google.com: 包含Google邮件服务的SPF记录。
* ~all: 软失败(SoftFail),表示未授权的IP地址发送的邮件可能会被标记,但不会立即拒绝。(推荐使用,** -all **是硬失败,更严格)
第二步:配置DKIM(DomainKeys Identified Mail)
DKIM提供了一种加密签名机制,确保邮件在传输过程中没有被篡改,并验证发送者域名的真实性。SPF验证发送服务器IP,而DKIM验证邮件内容和发送者身份。
配置DKIM需要两个步骤:在服务器端生成密钥对,然后在DNS中添加公钥。
1. 生成DKIM密钥对(服务器端操作)
大多数VPS用户需要安装和配置如 OpenDKIM 或使用像cPanel/Plesk这样的面板来自动生成密钥。以使用OpenDKIM为例,生成密钥后,你会得到一个私钥(保留在服务器上)和一个公钥(用于DNS)。
示例(使用OpenDKIM工具,生成2048位密钥):
# 假设使用 'default' 作为选择器 (selector)
opendkim-genkey -D /etc/mail/dkim/yourdomain.com -d yourdomain.com -s default -r
chown opendkim:opendkim /etc/mail/dkim/yourdomain.com/*.private
生成的公钥文件(通常是 default.txt 或 default.pub)中包含你需要在DNS中添加的记录值。
2. 添加DKIM记录(DNS配置)
将服务器生成的公钥内容,以TXT记录的形式添加到DNS中。
示例配置:
| 字段 | 值 |
|---|---|
| 类型 | TXT |
| 主机记录 | default._domainkey |
| 记录值 | v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCb7p7S9oP… (这是你的公钥) |
注意: 公钥内容非常长,许多DNS服务商需要你将公钥字符串拼接起来(去掉引号和空格)。
第三步:检查效果
配置完成后,等待DNS记录生效(通常几分钟到几小时)。然后,向如 mail-tester.com 或 check-auth@verifier.port25.com 发送一封测试邮件。
这些工具会提供详细的报告,明确指出你的邮件是否通过了SPF、DKIM和DMARC(推荐配置完前两者后也配置DMARC)的检查。
汤不热吧