メモ > サーバ > 各論: ネットワーク > メールを送信する際、迷惑メール扱いされないための設定(その他)
■メールを送信する際、迷惑メール扱いされないための設定(その他)
■正引きの設定
メール送信サーバにて正引きが行えるよう、Route53にAレコードを登録しておく
(http://web1.refirio.net/ http://web2.refirio.net/ で直接サーバにアクセスできるようになる)
-----------------------------------
Name Type Value
-----------------------------------
web1.refirio.net A 203.0.113.1
web2.refirio.net A 203.0.113.2
-----------------------------------
■メールを送らないドメイン用の設定
メールを受け取らないドメイン名に"Null MX"のリソースレコードを登録してみる - インフラエンジニアway - Powered by HEARTBEATS
https://heartbeats.jp/hbblog/2016/12/null-mx.html
以下は設定例(詳細は要勉強)
----------------------------------------------------------------------
Name Type Value
----------------------------------------------------------------------
test.refirio.net MX 0 .
----------------------------------------------------------------------
■メールヘッダの警告削除
メールヘッダに X-Authentication-Warning が含まれている場合、以下の対応も行う
メールヘッダに X-Authentication-Warning: が付かないようにする
http://www.omakase.org/mail/_x-authentication-warning.html
phpからメールを送るとX-Authentication-Warningヘッダがご丁寧に
http://www.orenante.com/?p=743
AWSでの対応は以下にまとめられているが、2013年の記事
Amazon EC2 Eメール送信ベストプラクティス | Developers.IO
https://dev.classmethod.jp/cloud/aws/ec2-send-email-best-practice/
■Postmasterツール
自分の送ったメールがGmailでどれぐらい迷惑メール判定されているかがわかるツール
(登録しても内容が表示されない場合、日を置いて確認する。メールトラフィックが少なすぎる場合も表示されないらしい)
Postmaster Tools https://gmail.com/postmaster/ にアクセスし、「Get Started」から開始する
「メールの認証に使用するドメイン」を登録すると
refirio.net の所有権の確認
1. refirio.net の DNS 設定に TXT レコードを追加します。
TXT レコード:
google-site-verification=XXXXX
のように表示されるので、DNSに登録する
「ダブルクォートで囲う必要がある」「すでにTXTレコードがあれば、既存のものに改行して追加する」という点に注意
Route53で、refirio.net のTXTレコードを以下のように変更
"v=spf1 a:web1.refirio.net a:web2.refirio.net -all"
↓
"v=spf1 a:web1.refirio.net a:web2.refirio.net -all"
"google-site-verification=XXXXX"
以下のコマンドで反映を確認
$ dig refirio.net any
Postmaster Tools で「確認」ボタンを押して完了する
ドメインが「確認済み」になった
Postmaster Tools で refirio.net のドメインをクリックして診断を表示する
自社のメールがGmailでどれだけスパム判定されてるか、グーグルのPostmaster Toolsで調べてみた | 編集長ブログ―安田英久 | Web担当者Forum
https://webtan.impress.co.jp/e/2015/08/25/20863
AWS Route 53でTXTレコードを追加できない場合の対処法 - Qiita
https://qiita.com/s_osa/items/1e4bf69f3c77dab91275
amazon web services - Tried to create 2 record set type=TXT in Route53 - Server Fault
https://serverfault.com/questions/616407/tried-to-create-2-record-set-type-txt-in-route53
■逆引きの設定
サーバによっては、はじめから設定済みになっていることもある
DNSの上位管理者が設定するため自分では設定できないことが多いが、専用画面から設定できることもある
AWSの場合、具体的な操作内容は AWS.txt の「メールの制限緩和」を参照
逆引きとは何ですか?どういった用途で利用しますか?
https://faq.interlink.or.jp/faq2/View/wcDisplayContent.aspx?id=94
逆引きの設定方法とは:DNS Tips - @IT
https://www.atmarkit.co.jp/ait/articles/1501/05/news014.html
DNS逆引きレコードの設定 | さくらのクラウド ドキュメント
https://manual.sakura.ad.jp/cloud/server/reverse-hostname.html
EC2インスタンスからメール送信のための準備
https://cloudpack.media/11249
■IPv6
さくらの専用サーバなど、送信元IPがIPv6のアドレスのものになることがある
この場合、IPv4のアドレスをSPFに登録しても効果がない可能性がある
IPv4からIPv6への移行が推奨されているので、サーバの設定でIPv6の設定を無効にするのではなくSPFにIPv6の設定を追加する方が良さそう
$ ifconfig
eth0 Link encap:Ethernet HWaddr 44:8A:5B:3B:96:30
inet addr:203.0.113.1 Bcast:203.0.113.255 Mask:255.255.255.0
inet6 addr: 2001:DB8203:a:153:120:12:84/64 Scope:Global
inet6 addr: fe81::469b:5bff:fe3b:9630/64 Scope:Link
この場合、以下のようにIPv6のアドレスをSPFに登録するといい(未検証)
ip6:2001:DB8203:a:153:120:12:84/64
■バウンスメールを解析
Command.txt の同項目を参照
■Gmailのメール認証規制強化
Gmailは2024年2月から迷惑メール対策を強化するとのこと
Gmailのメール認証規制強化への対応って終わってますか? - エムスリーテックブログ
https://www.m3tech.blog/entry/2023/10/24/110000
GoogleとYahooの新Eメール認証要件への短い対応タイムライン | Proofpoint JP
https://www.proofpoint.com/jp/blog/email-and-cloud-threats/google-and-yahoo-set-new-email-authentica...
Gmailが2024年2月から(大量)送信者に求めてることが分からない闇への防衛術(前編) #Security - Qiita
https://qiita.com/nfujita55a/items/37b05801209f6058808e
Gmailの新スパム規制対応全部書く
https://zenn.dev/ken_yoshi/articles/gmail-new-requirements-2024
■その他の参考ページ
Gmailを利用してメール送信ドメイン認証(SPF/DKIM/DMARC)の判定結果を簡単に確認する:Tech TIPS - @IT
http://www.atmarkit.co.jp/ait/articles/1701/11/news029.html
GmailやYahooメールで、迷惑メールと判定されないように、GoogleApps+独自サーバ(GMOクラウド)+PHPでメールを送る場合にやること
http://rough-and-ready-co-jp.blogspot.jp/2013/02/gmailyahoogoogleappsgmophp.html
Gmailスパムフィルタと壮絶に闘ってみた
http://tatete.blogspot.jp/2012/07/gmail.html
評判のさくらのVPSでSMTP(Sendmail)を公開する時にやっておきたいこと
http://server-setting.info/blog/smtp-sakuravps-presetting.html
Amazon EC2のサーバからメール送信をするまでにやるべきこと (スパムメール扱いを回避する!)
http://d.hatena.ne.jp/rx7/20100319/p1
Yahoo!メール迷惑メールに振り分けられる
http://taka-mori.hateblo.jp/entry/20090805/1249441550
Gmailでスパム扱いされるときの対処方法(迷惑メールフィルタ) - Qiita
https://qiita.com/miwato/items/7316e55ebd2ce5a0261c
知ってた?Gmailが迷惑メール判定する7つの理由と解除方法 | フォームズのブログ
https://blog.formzu.com/reason_for_being_treated_as_spam
また、Trouble.txt の「メールを送信しても届かない / 迷惑メールとして処理される」も確認する
ブラックリストに登録されている場合、リストからの削除依頼を行う必要がある。などの作業もある
ブラックリストに登録されているか確認できるツール
The Spamhaus Block List
https://www.spamhaus.org/sbl/
APEWS
http://www.apews.org/
■PHPでのメール送信例
メールを送信する際、mb_send_mailの第5引数でバウンスメールの受け取りアドレスを設定できる
ここにSPFなどで設定したメールアドレスを指定しておく。原則としてFromのアドレスと同じになるはず
DNS側でSPFを設定しても、PHP側でこの指定をしていないとSPFがpassにならない可能性がある
PHPの場合、mb_send_mail() の第5引数で指定できる
<?php
mb_language('Japanese');
mb_internal_encoding('UTF-8');
// メールを送信
if (mb_send_mail(
'to@example.com',
'テストメール',
'バウンスメールのテスト。' . "\n" . 'これはテストです。',
'From: auto@refirio.net',
'-f auto@refirio.net' // バウンスメールの受け取りアドレス(Return-Path)
)) {
echo 'OK';
} else {
echo 'NG';
}