$yuzu->log();

技術ネタなど。

【CentOS】迷惑メール(スパム)扱いされない為の最低限設定しておきたい3つの設定【Postfix】

さくらVPSCentOSの環境を構築し、localhost(ローカルホスト)からPostfixでメールを送信しても、なにも設定していないと高確率で迷惑メール(スパム)扱いされてしまいます。
Yahoo!メールは幾分か緩いですが、Gmailはほぼ100%迷惑メール(スパム)扱いされます。

最近は無料でSMTPサーバを貸してくれるサービスもあり、そちらを使う場合もあるかもしれませんが、localhost(ローカルホスト)から送信する場合もあると思うので、そちらで最低限しておきたい3つの設定を記します。

当方の環境は下記の通りです。

サーバー: さくらVPS(CentOS)
ドメイン: お名前.comで契約したhoge.com
メールソフト: Postfix

1. DNS逆引きレコード変更

さくらVPSの場合、契約したタイミングで、さくらのドメインが割り振られますが、WEBサービスを運営する場合は独自ドメインを取得し、そちらで運用してると思います。

何も設定せずにサーバーのIPを逆引きした場合、さくらのドメインが表示されるため、運用しているWEBサービスドメインと異なり、迷惑メール(スパム)扱いされます。

ですので、まずはDNS逆引きレコードを運営しているWEBサービスと同じドメインに変更しましょう。

さくらVPSの場合、コントロールパネルから逆引き設定できます。 f:id:yuzurus:20150613144542p:plain

確認は以下のコマンドを叩いて、ドメインが変わっていればOK

$ nslookup IPアドレス

2. SPFレコードの設定

Sender Policy Framework(センダー・ポリシー・フレームワーク)とは、電子メールにおける送信ドメイン認証のひとつ。差出人のメールアドレスが他のドメインになりすましていないかどうかを検出することができる。 SPF もしくは SPF認証 とも呼ばれる。

端的に言えば設定しておけば成りすましじゃないよ、ということを伝えることができるので、SPFレコードを設定してください。

お名前.comの場合は下記の画像のようにしてください。 f:id:yuzurus:20150613142310p:plain

ホスト名: 空
TYPE: TXT
TTL: 3600(お好みで)
VALUE: v=spf1 +a:hoge.com ~all

DKIMの設定

Domainkeys Identified Mail(DKIM)は、電子署名方式の送信ドメイン認証である。 DKIMでは送信側で電子メールに電子署名を付加し、受信側でその電子署名を照合するという方法で送信者のドメイン認証を行う。

DKIMの設定はOpenDKIMを使います。

sudo yum install opendkim

OpenDKIMを使って鍵を作成します。

sudo opendkim-genkey -D /etc/opendkim/keys/ -s hoge_com_selector -d hoge.com

作成された/etc/opendkim/keys/hoge_com_selector.txt の内容をDNSに登録してください。

f:id:yuzurus:20150613150429p:plain ホスト名: hoge_com_selector._domainkey
TYPE: TXT
TTL: 3600(お好みで)
VALUE: v=DKIM1; k=rsa; p=MIGfMA0GCSq…

/etc/opendkim.confの設定

# 送信と受信
Mode sv

# comment out
# KeyFile /etc/opendkim/keys/default.private

# uncomment
KeyTable refile:/etc/opendkim/KeyTable

# uncomment
SigningTable refile:/etc/opendkim/SigningTable

# uncomment
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts

# uncomment
InternalHosts refile:/etc/opendkim/TrustedHosts 

/etc/opendkim/KeyTableの設定

hoge_com_selector._domainkey.hoge.com hoge.com:hoge_com_selector:/etc/opendkim/keys/hoge_com_selector.private

/etc/opendkim/SigningTableの設定

*@hoge.com hoge_com_selector._domainkey.hoge.com

Postfixの設定

/etc/postfix/main.cfの末尾に下記を追記

smtpd_milters = inet:127.0.0.1:8891

OpenDKIMとPostfixのrestart

sudo service opendkim restart
sudo service postfix restart

OpenDKIMの設定が正しいか確認

メールを送信して署名が追加されているか確認する。

# mail example@gmail.com
Subject: Test
Test
.

メールログ(/var/log/maillog)を確認し、

DKIM-Signature header added (s=hoge_com_selector, d=hoge.com)

という文字があれば設定完了。

参考 http://nobnoob.hatenablog.com/entry/2013/04/01/093120