Postfix配置spf认证和dkim认证
ps.配置完成后,可以用 mail-tester.com检查一下配置是否成功
1. 为Postfix添加spf认证
在DNS服务商的网站上增加一条TXT记录
v=spf1 include:example.com -all
2. 为Postfix添加DKIM认证
① 配置openDKIM
1.安装openDKIM
Bash
yum search opendkim
yum install opendkim.x86_64 -y
2.在/etc/opendkim.conf
中,添加以下内容
GDScript
AutoRestart Yes
AutoRestartRate 10/1h
LogWhy Yes
Syslog Yes
SyslogSuccess Yes
Mode sv
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
SignatureAlgorithm rsa-sha256
Socket inet:8891@localhost
PidFile /var/run/opendkim/opendkim.pid
UMask 022
UserID opendkim:opendkim
TemporaryDirectory /var/tmp
3.执行以下命令,注意:将以下步骤的 example.com 替换成自己的域名
Bash
mkdir /etc/opendkim/keys/example.com #创建密钥目录
opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default #生成密钥
chown -R opendkim: /etc/opendkim/keys/example.com #更改所有者
在目录/etc/opendkim/keys/example.com
下会生成两个文件,default.private
和 default.txt
。
4.在/etc/opendkim/KeyTable
里添加如下内容
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private
5.在/etc/opendkim/SigningTable
里添加如下内容
Transact-SQL
*@example.com default._domainkey.example.com
6.在/etc/opendkim/TrustedHosts
里添加如下内容
CBM BASIC V2
127.0.0.1
test.com
② 配置TXT记录
在DNS服务商中,加入文件/etc/opendkim/keys/example.com/default.txt
内容。
是一个名为default._domainkey
的TXT
记录。
③ 配置POSTFIX
修改postfix的main.cf文件,在/etc/postfix/main.cf
中添加如下内容
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2
④ 启动openDKIM
Bash
systemctl restart opendkim
systemctl restart postfix
systemctl enable opendkim
3. 添加 dmarc 记录
在DNS服务商里加入一条名为_dmarc
的TXT记录,类似于 v=DMARC1; p=none;
详细语法请见 RFC7489
示例
Transact-SQL
v=DMARC1; p=none; ri=3600; rua=mailto:DMARC@example.com; ruf=mailto:DMARC@example.com; sp=none; adkim=s; aspf=s; fo=0:1:d:s;
选项 | 解释 |
---|---|
v | DMARC 协议版本。它的值必须是 DMARC1 |
p | 策略,该策略将被应用到验证失败的邮件上。可以设置成: none 用来收集 DMARC 报告, quarantine 用来隔离可疑邮件 ,reject 用来拒收可疑邮件 |
ri | 是以秒为单位的报告发送间隔 |
rua | 一系列用来接受聚合报告的电邮 |
ruf | 一系列用来接受失败报告的电邮 |
sp | 子域名策略 |
adkim | 制定 DKIM 的对齐策略 |
aspf | 制定 SPF 的对齐策略 |
fo | 法庭选项 |
rf | 制定失败报告的格式 |
pct | 对失败邮件应用策略的百分比 |