SPFおよびDKIMによるemail送信者認証の設定

メールサーバを構築してgmailにメールを送っても、迷惑メールと判断されてSPAMフォルダーに入ってしまう場合があります。これを解決するためにはメールサーバの送信者認証が必要となります。ここではgoogleやyahooなど大手フリーメールサービスプロバイダが採用しているSPFおよびDKIMの構築設定メモを記述します。

 

前提

  • Ubuntu Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:        14.04
Codename:       trusty
  • Postfixメールサーバでの送信テスト完了
$ postconf -d mail_version
mail_version = 2.11.0

 

SPFの設定

  • DNS設定
    お名前.com 設定例
ホスト名: 入力なし
TYPE: TXT
VALUE: v=spf1 ip4:50.116.13.111 ~all
  • 確認
$ dig octaviadata.com txt
;; ANSWER SECTION:
octaviadata.com.        3600    IN      TXT     "v=spf1 ip4:50.116.13.111 ~all"

 

DKIM(DomainKeys Identified Mail)の設定

$ sudo apt-get install opendkim opendkim-tools
$ sudo vim /etc/opendkim.conf
Domain                  octaviadata.com
KeyFile         /etc/postfix/dkim.key
Selector                dkim
$ sudo vim /etc/default/opendkim
SOCKET="inet:8891@localhost"
$ sudo vim /etc/postfix/main.cf
# DKIM
# --------------------------------------
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
$ sudo vim /etc/postfix/master.cf
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters

 

  • 鍵生成
$ sudo opendkim-genkey -t -s dkim -d octaviadata.com
$ sudo mv dkim.private /etc/postfix/dkim.key
$ sudo chown opendkim:opendkim /etc/postfix/dkim.key
  • dkim.txtの内容をDNSに登録
$ sudo cat dkim.txt
dkim._domainkey IN      TXT     ( "v=DKIM1; k=rsa; t=y; "          "p=xxxxxxxxxx" )  ; ----- DKIM key dkim for octaviadata.com

お名前.com 設定例

ホスト名 : dkim._domainkey
TYPE : TXT
VALUE : v=DKIM1; k=rsa; t=y; p=xxxxxxxxxx

 

サービス再起動

$ sudo service opendkim start
$ sudo service postfix restart

 

確認

  • 確認用のサービスを利用
$ echo "How are you doing" | mail -s "Hi" -r admin@octaviadata.com check-auth@verifier.port25.com

返信されるメール内容で結果を確認。

==========================================================
Summary of Results
==========================================================
SPF check:          pass
DomainKeys check:   neutral
DKIM check:         pass
Sender-ID check:    pass
SpamAssassin check: ham
  • gmail.comおよびyahoo.comアカウントへの送信テストはOK。
  • outlook.comはNG.

---
Action: failed
Status: 5.0.0
Remote-MTA: dns; mx3.hotmail.com
Diagnostic-Code: smtp; 550 SC-001 (BAY004-MC3F42) Unfortunately, messages from
    50.116.13.111 weren't sent. Please contact your Internet service provider
    since part of their network is on our block list. You can also refer your
    provider to http://mail.live.com/mail/troubleshooting.aspx#errors.
---

 

Microsoft問合せ

  • 問い合わせ https://support.live.com/eform.aspx?productKey=edfsmsbl3&ct=eformts&wa
    即日にメールで回答を得る。無事メール送受信できるようになった。
    ---
    Our investigation has determined that the above IP(s) qualify for conditional mitigation. These IP(s) have been unblocked, but may be subject to low daily email limits until they have established a good reputation.
    ---
  • 参考リンク
    サポートから教えてもらったサービス。
    - Hotmail and Windows Live Mail traffic data https://postmaster.live.com/snds/data.aspx