LMLPHP后院

Ubuntu DKIM 域名邮件身份认证技术

maybe yes 发表于 2017-08-16 14:00

邮件的认证方式有 SPF 和 DKIM。SPF 全称为 Sender Policy Framework,即发件人策略框架,DKIM 的缩写是 DomainKeys Identified Mail。gmail 墙裂推荐使用 DKIM 的认证方式,SPF 实现起来相对简单,只需简单的设置 DNS 就可以。本文主要讲解 DKIM 的实现。

以 Ubuntu 为例,使用 postfix 发送邮件。

第一步,安装 opendkim。

$ apt-get install opendkim opendkim-tools

修改配置,如下:

$ vim /etc/opendkim.conf

Domain lmlphp.com
KeyFile /etc/postfix/dkim.key
Selector mail
SOCKET inet:8891@127.0.0.1
$ vim /etc/default/opendkim

SOCKET="inet:8891@127.0.0.1"
$ vim /etc/postfix/main.cf

# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891

生成秘钥对,复制私钥到指定位置。

$ opendkim-genkey -t -s mail -d example.com

$ cp mail.private /etc/postfix/dkim.key

查看公钥内容,复制到剪切版,具体见截图。

$ cat mail.txt

mail._domainkey IN      TXT     ( "v=DKIM1; k=rsa; t=y; "
          "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCz0f8F7qz/191OSAMLSsfoVw0unQBe5/Yb7y0EgbKeVBLSg+N13+rEHN8frXyL9/fr0N5KwXP3Az0trBIbAZPhNDz9EkkD1j85alSO8DfYtTQbcn/idpnGLHbdnF+iemFyHZg5ipcUO/1GT5Fjok487IwYxkMg80N80+lad9VhRQIDAQAB" )  ; ----- DKIM key mail for lmlphp.com

添加 TXT 解析,以阿里云截图为例。

Ubuntu DKIM 邮件身份认证

重启服务。

$ service opendkim start
$ service postfix restart

使用 dig 测试。

$ dig mail._domainKey.lmlphp.com TXT
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> mail._domainKey.lmlphp.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52323
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mail._domainKey.lmlphp.com.    IN      TXT

;; ANSWER SECTION:
mail._domainKey.lmlphp.com. 600 IN      TXT     "v=DKIM1\; k=rsa\; t=y\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCz0f8F7qz/191OSAMLSsfoVw0unQBe5/Yb7y0EgbKeVBLSg+N13+rEHN8frXyL9/fr0N5KwXP3Az0trBIbAZPhNDz9EkkD1j85alSO8DfYtTQbcn/idpnGLHbdnF+iemFyHZg5ipcUO/1GT5Fjok487IwYxkMg80N80+lad9VhRQIDAQAB"

;; Query time: 7 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Wed Aug 16 14:02:47 2017
;; MSG SIZE  rcvd: 296

10 分钟后,gmail 测试正常接收邮件,不再是进入垃圾箱。

国内的一些邮件服务商比较人性化,比如 126 邮箱,QQ 邮箱等会通过反向解析来判断垃圾邮件,只要是在自己的域名指向的服务器上发出的邮件,一般不会进入垃圾箱,而 gmail 是认死理的。

链接:

相关文章
LMLPHP,可爱滴WEB开发框架

2017-09-24 00:14:38 1506183278 0.004165