DKIM 记录
开启DNSSEC
1.CloudFlare > love4z.cn > DNS > 设置 > 开启DNSSEC
2.腾讯云 > love4z.cn > 域名安全 > DNSSEC 管理 (先暂时关闭禁止更新锁)
将CloudFlare提供的DS 记录一一对应填入:
安装 OpenDKIM
sudo apt install opendkim opendkim-tools
生成密钥
mkdir /etc/opendkim
opendkim-genkey -s -d love4z.cn -D /etc/opendkim
编辑 /etc/opendkim.conf
SyslogSuccess yes
LogWhy yes
Domain love4z.cn
Selector
KeyFile /etc/opendkim/.private
# 注释掉原本的 Socket local:...
Socket inet:8891@localhost
InternalHosts 127.0.0.1, ::1
配置 DNS:
vi /etc/opendkim/.txt
若格式错误 删除括号内多余的空格换行和引号,使两段长字符串合并
- 记录类型:
TXT
- 主机记录:
._domainkey
- 记录值:
v=DKIM1; k=sha256; p=MIIBIjANBg...
验证DNS配置
systemctl restart opendkim && opendkim-testkey -d love4z.cn -s -vvv
#应该返回
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: key loaded from /etc/opendkim/.private
opendkim-testkey: checking key '._domainkey.love4z.cn'
opendkim-testkey: key secure
opendkim-testkey: key OK
配置 Postfix
vim /etc/postfix/main.cf
添加:
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
测试发信
邮件原文显示 dkim=fail(No key) 意味私钥读取失败
chown opendkim:opendkim /etc/opendkim/.private
chmod 600 /etc/opendkim/.private