
Nifty/Gmail/ezwebにmydnsからのメールが届くようにする
何代か前のサーバーのときにOP25BなるものがでてきてNiftyはじめ、mydnsドメインからのメールが届かなくなったことがあるが、その際はOP25B対応してメールが届くようになった。
が、いつだったか再びあちこちにmydnsからのメールが届かなくなって何だろうな~と思ったら、今どきのメールっていろいろ処置を施さないと届かないようで…
ということで、いろいろ対策してみた。
今どきのメールに必要なこと
OP25B対応も必要だが、これ以外に以下が必要。
- SPFの設定
- DMARCの設定
- DKIM認証の設定
このうち、SPFとDMARCはDNSレコードで設定するのだが、これは自鯖でなくmydnsのレコードを設定する。
SPFの設定
SPFはメール送信者のドメインに対して送信サーバは○○だよという設定をして、メールの偽装を防ぐ仕組み。 具体的にはDNSのレコードに、
IN TXT "v=spf1 +ip4:メールサーバのIPアドレス -all"
といった記述をするのだが、mydnsでは自動でSPFを設定しているようなので特に追加の設定は不要。
(SPFの記述をしたTXTレコードを追加すれば、そちらを優先するらしい)
DMARCの設定
DMARCは送信されたメールがDMARCの認証に合格しないときにどう処理するかを記述したレコード。
https://dmarcian.com/dmarc-inspector/ や https://mxtoolbox.com/ で確認しながら設定してみたところ、mydnsでは、
| Hostname | Type | Content |
| _dmarc | TXT | v=DMARC1; p=; rua=mailto:レポート送信先アドレス; |
と書くのが良さそうだ。
DKIM認証の設定
DKIMはDomain Keys Identified Mailの略で、メール送信時に電子署名を付加し、受信側ではDNSに設定された内容に基づいて受信したメールの署名を確認する仕組み。
つまり、メールを送信する際に電子署名を付加するようにしなければならず、これはOpendkimをインストールするとできるようだ。
Opendkimは、
apt update
apt install opendkim opendkim-tools
でインストールでき、インストール後に、
opendkim-genkey -b 1024 -D /etc/dkimkeys -d xxxx.xxxx.jp -s <セレクター>
※mydnsのTXTレコードは250文字までしか登録できないので、"-b 1024"で秘密鍵の長さを制限する。
で秘密鍵を作成し、
chown opendkim:opendkim /etc/dkimkeys/mail.private
chown opendkim:opendkim /etc/dkimkeys/mail.txt
で所有者を変更。そして/etc/opendkim.confを、
Mode sv
Domain xxxx.xxx.jp
Selector <セレクター>
KeyFile /etc/dkimkeys/mail.private
Socket inet:8891@localhost
な感じで編集する。編集後、
systemctl restart opendkim
で再起動すればOK。
次に、mydns側のレコードに/etc/dkimkeys/mail.txtの内容をもとに、
| Hostname | Type | Content |
| <セレクター>._domainkey | TXT | v=DKIM1; h=sha256; k=rsa; p=~ |
のように追加する。
これでOpendkimとDNSレコードの設定はできたが、もう一つ、メール送信時に電子署名を付加するよう、postfixの設定(/etc/postfix/main.cf)に以下を追加する。
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
設定変更後、systemctl restart postfixで再起動すればOK。
テスト送信
自鯖アカウントを設定したメールクライアントから、Nifty、Gmail、ezwebにテストメールを送信、それぞれ受信することができ、



SPF/DMARC/DKIMのチェックがパスしたという情報がヘッダに付加されたことが確認でき、自鯖からのメールが適切に処理されるようになった。




ディスカッション
コメント一覧
まだ、コメントがありません