1.SPF
SPF 記錄是一種域名服務 (DNS) 記錄,可确定允許哪些郵件伺服器代表您的域來發送電子郵件。
SPF的設定選項可以參考:http://www.openspf.org/SPFRecordSyntax
這裡說幾個常用的:
- a:所有該域名的A記錄都為通過,a不指定的情況下為目前域名
- ip4:指定通過的IP
- mx:mx記錄域名的A記錄IP可以發郵件
- all:結束标志,“-”表示隻允許設定的記錄為通過,“~”表示失敗,通常用于測試,“+”表示忽略SPF
例如我的:
v=spf1 a mx -all
,則表示允許A記錄和MX記錄IP收發郵件。添加的方法是在域名DNS解析設定一個txt記錄,主機記錄為空或者@,記錄值為
v=spf1 a mx -all
,其他可以忽略。
2.DKIM
DomainKeys Identified Mail的縮寫,域名密鑰識别郵件标準。
下載下傳安裝EPEL:
64 bit:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
32 bit:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
安裝opendkim:
yum install opendkim
生成DKIM key (修改紅色部分域名)
# 請替換下面的域名
export domain=lomu.me
mkdir /etc/opendkim/keys/$domain
cd /etc/opendkim/keys/$domain
opendkim-genkey -d $domain -s default
chown -R opendkim:opendkim /etc/opendkim/keys/$domain
echo "default._domainkey.$domain $domain:default:/etc/opendkim/keys/$domain/default.private" >> /etc/opendkim/KeyTable
echo "*@$domain default._domainkey.$domain" >> /etc/opendkim/SigningTable
生成之後打開
/etc/opendkim/keys/domain.com/default.txt
,裡面就是DKIM key,需要添加到DNS,主機記錄為
default._domainkey
,記錄值為括号裡面的(去掉引号)。
修改openDKIM設定
vi /etc/opendkim.conf
1. 将
Mode
改為
Mode sv
2. 将
Domain
改為
Domain lomu.me
(lomu.me是之前設定的域名) 3. 将所有變量前面的
#
去掉,但是
KeyFile
、
Statistics
加上
#
4. 再把
SigningTable /etc/opendkim/SigningTable
改成
SigningTable refile:/etc/opendkim/SigningTable
設定Postfix
vi /etc/postfix/main.cf
加上下面幾行
# opendkim setup
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
milter_default_action = accept
重新開機服務
service opendkim restart
service postfix restart
chkconfig opendkim on
PS: 第一次啟動如果出現 Generating default DKIM keys: hostname: Unknown host 可以在 /etc/hosts 上面加上域名,例如:
127.0.0.1 lomu.me localhost localhost.localdomain localhost4 localhost4.localdomain4
3.DMARC
DMARC協定是有效解決信頭From僞造而誕生的一種新的郵件來源驗證手段,為郵件發件人位址提供強大保護,并在郵件收發雙方之間建立起一個資料回報機制。
具體資訊可以看這裡:http://dmarc.org/overview/。
DMARC記錄中常用的參數解釋
p:用于告知收件方,當檢測到某郵件存在僞造我(發件人)的情況,收件方要做出什麼處理,處理方式從輕到重依次為:none為不作任何處理;quarantine為将郵件标記為垃圾郵件;reject為拒絕該郵件。初期建議設定為none。
rua:用于在收件方檢測後,将一段時間的彙總報告,發送到哪個郵箱位址。
ruf:用于當檢測到僞造郵件時,收件方須将該僞造資訊的報告發送到哪個郵箱位址。
例如我設定的是
v=DMARC1;p=reject;[email protected]
,意思是拒絕僞造郵件,并且将一段時間的彙總報告發送給我。
添加到DNS
添加TXT記錄,主機名:_dmarc,記錄值:
v=DMARC1;p=reject;[email protected]
4.PTR
PTR記錄,是電子郵件系統中的郵件交換記錄的一種;另一種郵件交換記錄是A記錄(在IPv4協定中)或AAAA記錄(在IPv6協定中)。PTR記錄常被用于反向位址解析。
PTR記錄也就是IP反向解析,我們常見的解析都是将域名A記錄解析到IP,PTR則是将IP反向解析到對應的域名,通過設定PTR可以提高發信方的信譽,進而提高到達率。
PTR設定
通過觀察,一般國外的VPS都會直接将購買的時候的hostname設定為PTR記錄值,但是我買的阿裡雲的并沒有,是以這個需要送出售後工單要求客服幫你添加的,添加的值為安裝postfix的時候設定的myhostname,例如我的是mail.lomu.me。
添加好了以後可以通過以下指令檢視
dig -x IP
如果看到了PTR記錄為你的域名那就說明成功了。
到這裡,基本上隻要不發垃圾郵件,郵件的到達率應該就沒啥問題了。
這裡給大家推薦一個測試工具:http://www.mail-tester.com/,隻要給頁面上的郵箱随便發一封郵件,然後點選按鈕送出就可以看到測試結果,裡面會有一些優化建議,非常好用。