2025年12月末でGmailがPOP取り込みを終了します。
今までGmailの「他のアカウントのメールを確認」で外部の受信メールを取り込んで1箇所にまとめることができましたが、今後できなくなります。
メールをGmailに転送すれば今まで通りになるけど、正しく設定してないとスパムメール扱いされてしまう。ということで改めて迷惑メール対策しました。
なおサーバはRocky Linux 9。Postfixで送受信できているところから進めます。
SPF・DKIM・DMARCが送信側の対策、Postscreenが受信側の対策です。
SPF
DNSでメールのドメインとIPアドレスを紐づけます。2023年まではこれ設定するだけで良かったんだけど今では不十分です。
txt @ v=spf1 ip4:(IPアドレス) ~all
DKIM
メールに電子署名を追加して改ざんされてないかチェックする機能です。
OpenDKIM初期設定
インストール
# dnf config-manager --set-enabled crb # dnf install opendkim opendkim-tools # dnf config-manager --disable epel
設定
# vi /etc/opendkim.conf
Mode sv #KeyFile /etc/opendkim/keys/default.private KeyTable refile:/etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts
起動
# systemctl start opendkim # systemctl enable opendkim
PostfixとOpenDKIM接続
# vi /etc/postfix/main.cf
末尾に追加 smtpd_milters = local:/run/opendkim/opendkim.sock non_smtpd_milters = $smtpd_milters milter_default_action = accept
ユーザ権限変更してリロード
# usermod -a -G opendkim postfix # systemctl reload postfix
ドメインごとの設定
鍵を作成します。ドメインはexample.comにしてるので書き換えてください。あと鍵の名前20251211も。
# mkdir -p /etc/opendkim/keys/example.com # cd /etc/opendkim/keys/example.com # opendkim-genkey -v -b 1024 -d example.com -s 20251211 # chown opendkim:opendkim *.*
なお鍵の長さを1024bitにしているのは2048bitだとDNSで長すぎだとエラーが出たから。複数行に分ければ登録できるみたいだし、1024bitだと弱いのでそのうち対応します。
秘密鍵を指定
# vi /etc/opendkim/KeyTable
20251211._domainkey.example.com example.com:20251211:/etc/opendkim/keys/example.com/20251211.private
署名するメールアドレスを指定
# vi /etc/opendkim/SigningTable
*@example.com 20251211._domainkey.example.com
再起動
# systemctl restart opendkim # systemctl restart postfix
TXTレコード作成します
# cd /etc/opendkim/keys/example.com # cat 20251211.txt
上記結果から括弧の中身を取り出しダブルクォーテーションと改行削除して1行にまとめます。そして以下のようにDNSに登録します。
txt 20251211._domainkey.example.com v=DKIM1; k=rsa; p=(省略)
DKIMは毎回めんどくさいね。
DMARC
メールをどう扱うかの設定です。これは何もしないという設定です。DNSに書き込みます。
txt _dmarc.example.com v=DMARC1; p=none;
Postscreen
受信側の迷惑メール対策です。転送設定で使うのならGmail側が勝手にスパム判断してくれるので不要ですが、転送しないメールアカウントもあるので。
# vi /etc/postfix/master.cf
コメントアウト #smtp inet n - n - - smtpd 有効化 smtp inet n - n - 1 postscreen smtpd pass - - n - - smtpd dnsblog unix - - n - 0 dnsblog tlsproxy unix - - n - 0 tlsproxy
# vi /etc/postfix/main.cf
末尾に追加 postscreen_greet_action = enforce postscreen_greet_wait = 6s postscreen_non_smtp_command_enable = no postscreen_non_smtp_command_action = drop postscreen_client_connection_count_limit = 50 postscreen_dnsbl_action = ignore postscreen_cache_cleanup_interval = 12h
再起動
# systemctl restart postfix
ログを確認します。
# journalctl -u postfix | grep postscreen | grep -E 'DROP|HANGUP|reject|PREGREET|NON-SMTP'
1日100通来ていた迷惑メールが10通に減りました。まだ多いけど誤検知があると困るので最低限のチェックのみにしています。
無料DNSBL調べてみたけどもう使えない所が多いね…
まとめ
これで2026年になっても今まで通りGmailアカウント1本でメールを扱えます。

コメント