送信先のメールアドレスのドメインをサーバーのドメインと合わせる
基本。
「メールを送信するサーバーのドメイン」と「送信元となるメールアドレスのドメイン」が異なると、中継するメールサーバーやメールクライアントは「なりすましメール/偽装されたメール」と認識してしまう可能性があり、迷惑メール扱いになって、メールが届かない可能性が出てくるから。
SPFレコードの設定
DNSにSPFレコードを設定する。SPFレコードがかかっているかどうかは、digコマンドを使うか、Gmailだと「メッセージのソースを表示」を押すと確認できる。
サーバー設定によってはIPv4とIPv6両方で通信する場合があるため、メールのヘッダを確認してIPv6の対応をしていなければ、SPFレコードにIPv4とIPv6両方の設定がされているかを確認する。
# digコマンドの例
dig isaxxx.com txt +short
PTRレコードの設定
受信するメールサーバーによっては、メール送信元のIPアドレスがSPFレコードに登録されているだけでなく、メール送信元のIPアドレスからドメイン名を逆引きできるようになっていないと迷惑メールと判定されることもある。
# PTRレコードは下記のようなdigコマンドで確認できる
dig -x (IPアドレス) +short
エンベロープFrom(Return-Path)の設定
メール送信ライブラリばかり使っていると忘れがち。php.iniなどの設定でforce senderを追加したり、mb_send_mailのadditional parameterに”-f info@example.com”の指定を追加する。
WordPressの場合は、wp_mail関数内部でPHPMailerを使用しているため、下記のようなアクションフックで「Return-Path: info@example.com」のように設定する。
返信先を変更したい場合は、「Reply-To: info@example.com」を指定する。
// Return-Path: info@example.com
add_action('phpmailer_init', function($phpmailer){
$phpmailer->SMTPKeepAlive = true;
$phpmailer->Sender = 'info@example.com';
});
MXToolBoxなどでネットワークの設定を確認する
MXToolBoxはメールやDNSサーバーなどのネットワーク関連の設定が正しく行えているかどうかを確認するためのツール。
DNS Record PublishedがOKになっていなかったら、Google Search Consoleに登録することでDNSのレコードが認識されるようになる。
Googleクローラーにフェッチさせる
フォームの宛先がGmailになっている場合、Googleクローラーにフェッチさせていないと迷惑メールに入る可能性がある。
迷惑メールに入るというより届かない場合
レンタルサーバーを使用している場合で、レンタルサーバーにメールサービスがあり、かつ Google Workspace などを利用し mx レコードを外部サーバーとしている場合は、同サーバー内でメールの送受信がループしている可能性があるため、レンタルサーバーで登録されているメールサービス(メールアドレス)を削除する必要がある。
その他
DKIMとDMARCの設定。
またあまりないが、ドメインがブラックリストに登録されていないかなどを確認する。