WordPressで管理者メールアドレスをGmailに設定するときの注意事項と解決方法
たまに見かける「WordPressからGmailのメールアドレス宛にメールを送信すると迷惑メールフォルダに入ってしまう(場合によっては受信できない)」問題。
基本的には対処が可能な問題だったのですが、日々セキュリティを強化していて、送信ドメイン認証技術が「SPF」だけではなく「DKIM」や「DMARC」も必要不可欠になってきた今日この頃。
2024年1月中の提供を目指して各レンタルサーバーが対応に追われる中、またもや、Gmailを使うことで問題が発生してしまいました……。
解決方法をまとめた参考ページは数多くあるものの、自力で調べても解決しなかった、ぼくのような人向けにまとめた情報ページです。
この対応方法であなたの問題が解決できることを祈っています。
(実は本記事が2024年最初の投稿なのですが、挨拶などは2月に入ってから改めて記事を投稿するつもりなので、そちらで……)
クリエイトアコードの記事かどうかは問わず、技術的な投稿を見るときは最終更新日をご確認いただくことを強く推奨しております。
最終更新日より1年以上経過している場合は非推奨なやり方または関数を利用している可能性がありますので、掲載情報を扱うときは必ず最新の情報をご確認いただいた上でご利用ください。
不安な方は、クリエイトアコードのSNSのDMまたはお問い合わせよりお問い合わせください。
なぜ、WordPressからのメールがGmailの迷惑メールフォルダに入ったのか?
IPアドレスがウェブとメールで異なっているということは「なりすまししているのではないか?」とGoogleが疑う。
そして、送信ドメイン認証技術である「SPF」「DKIM」(必要に応じて「DMARC」)が正しく確認できなかったことで、Googleが「これはなりすましだ!」と断定したため、迷惑メールフォルダ入りが決定したから。
技術的な話になってきてしまうため、詳しくは割愛するのですが、要するに「送信者が嘘偽りなく実在し、悪者じゃないことを証明する」ための認証の仕組みを使って問題なく認められたら、我々に問題なくメールが届くようにできているんですね。
それだけ、なりすましを含めた迷惑行為が多いということなので、悲しいことではあるのですが……。
Google(Gmail)をはじめ、メールソフト・メールツールを提供しているサービスは、こうしたなりすましを含めた迷惑行為に対する取り組みを強化しているのですが、そのせいで、対応がどんどん難しくなってきてしまっているように思うのです。
この問題は、ウェブサーバーとメールサーバーのIPが同じであれば発生しにくく、
仮に異なっても、「SPF」「DKIM」(必要に応じて「DMARC」)が正しく確認できれば問題なかったはずなのですが、特定の条件に合致した場合、うまく確認することができずに問題が発生してしまうのです。
実際に、今回、ぼくの環境で検証していますので検証結果を下記にまとめました。
問題のあったケース
すべての条件に合致している場合に問題が発生しました。
- Web(ウェブ)サーバーとMail(メール)サーバーを別々にしている
- メールサーバーの方でメールアドレスを作成している
- 管理者メールアドレスをGmailにしている
(注)メールフォームの仕様有無については未検証。とはいえ、WordPress本体またはプラグインから管理者メールアドレスに送信される場合は「問題があったケース」に当てはまると判断できるので、メールフォームを利用していても「問題があったケース」に当てはまると考えられる。
問題がなかったケース
すべての条件に合致している場合は問題がありませんでした。
- Web(ウェブ)サーバーとMail(メール)サーバーを同じにしている
- 管理者メールアドレスをGmailにしている
(注)サーバーでメールアドレスを作成したかどうかで問題があるか否かについては未検証。自分の環境は「メールアドレスを作成していなかった」です。とはいえ、最初の段階でIPアドレスが一致しているので、問題はないと判断できる。
どうして確認できなかったのか。
Gmailで問題が発生したメールの詳細「メッセージのソースを表示」を見ると、「SPF」「DKIM」「DMARC」のうち、すべてが確認できない状態(未設定)の状態になっていました。ちゃんとメールサーバー側で設定していても、です。
これは、WordPress側(ウェブサーバー)からメールを送っていて、ウェブサーバーでは、これらの設定が未設定だったことから起こったためです。
「じゃあ、ウェブサーバーとメールサーバーは同じにして、念のためにSPFとDKIMを設定にしておけばいいんじゃないの? 更に管理者メールアドレスやメールフォームも念のためにGmailじゃなくてドメインのメールアドレスで設定しておけばいいよね?」
というお気持ちは分かります。おそらくこれで問題なく使えるはず。
ただ、「セキュリティを考慮すると、ウェブとメールはサーバーを分けたい(メールサーバーはセキュリティに優れたサービスを使用している)」という事例や「使っているウェブサーバーではSPFは対応していてもDKIMは未対応で今後も対応される見通しが立っていない」という事例は珍しくないのではないでしょうか。
前者はともかく、後者は今まで問題になっていなかっただけだと考えられるので、今後はこのような問題が表面化して結果的に「問題が増える」可能性が高いのではないかと考えています。
こうなってくると、ウェブサーバーに設定をしていても、メールサーバーは別なので効果はありませんし、設定すらできない場合は手の打ちようがありません。
個人または自身の裁量で対応できる多くの方は問題なく、比較的容易に解決が見込めても、
Web制作者・Web制作会社にとっては簡単に解決が見込めないか、このような事例に遭遇する可能性が今後は高くなるかもしれないということは留意しておくと良いのではないでしょうか。
個人または自身の裁量で対応できる多くの方は前述の通り、念のためにウェブサーバーのメール設定に対して、SPFとDKIM(対応しているならDMARCも)を設定しておき、管理者メールアドレスとメールフォームの送信元はウェブサイトと同じドメインのメールアドレスに変更しておきましょう。
これで問題は解決するはずです。
残念ながら、「簡単に解決が見込めない」に当てはまっている人は、次のコンテンツ【対処できるパターンと対処できないパターン】をご確認ください。
対処できるパターンと対処できないパターン
ウェブサーバーとメールサーバーが異なる場合のすべてが解決できるわけではありません。
WordPressの仕様上、どうしても対処できないパターンというのが存在しています。
対処できるパターン
送信元メールアドレスが同一であれば問題なく対応できるため、下記のケースであれば、問題なく対処ができます。
- WordPressから届くメールアドレスのドメインはウェブサイトと同じドメインにすることができる
- WordPressから届くメールアドレスはすべてGmailにすることができる
- メールフォームは外部のシステムを使う
対処できないパターン
対処方法で「送信元メールアドレスを統一して使用する」都合上、送信元メールアドレスがバラバラにできないため、下記のケースは対処ができません。
- WordPressから届くメールのほとんどはウェブサイトと同じドメインにできるが、管理者メールアドレスはGmail
- WordPressから届くメールのほとんどはGmailで管理者メールアドレスもGmailだが、それぞれ別アカウントのメールアドレスである(例:お問い合わせフォームはクライアントのもの、サイトに関する通知メールはWeb制作者またはWeb制作会社のもの)
対処できないパターンについては、
- お客様に説明および納得いただき、「対処できるパターン」で対応する
- WordPressからの通知以外で何らかのメール送信が必要になった場合は外部のシステムを使う
の方法で対処します。
「どうしても対処できないパターンで実現したい!」と言われても、現状ではパターン別で送信メール設定ができないので、どうしても実現したいという場合、プラグインができるかWordPress側で対応してくれるのを待つ他に選択肢はなさそうです。
(少なくとも今のぼくには仕様も含めてどのようにしたら実現できるのかは思いつきません。プラグイン側でメール送信するときのフックがないと干渉できないように思えるし、それをしたらセキュリティ面で不安があるので、できない方が良いのではとも思っている)
余談ですが、ぼくは、メールフォームは外部のシステムに乗り換えて対応しました。(その時の話)
しばらくは問題なかったのですが、今回問題が発生したため、改めて対応したのが今回のお話になります。
「対処できる状態になり、Gmailで設定したい」と仮定し、次に進みます。
次のコンテンツ【解決方法】に進んでください。
解決方法では、一時的にクレジットカードの利用やデビットカードの登録をすることになるので、これらのカードの登録ができなかったら手の打ちようがなさそうです……。なので、その場合は、本解決方法を利用せずにGmailを使うのをやめることをオススメします。Googleアカウントの本人確認も厳しくなってきていることだし、無理にGmailで受信をすることはないのではないかと。
どうしてもGmailに転送したい場合は、転送用のメールアドレスを作って届いたメールをGmailに転送する形でサーバー側に設定すると良さそうです。
(自分が責任を取れるわけじゃないので、一時的な利用でも、自分のカードを使って対応するのはダメだよ!)
解決方法(WordPressプラグイン「WP Mail SMTP」と、Google CloudのGmail APIを使用)
使い勝手が良くて必要な機能が揃っているプラグインを他に知らないというのもあるのですが、今回はメール設定で困ったときに情報を探すと必ずと言っても過言ではないほどに情報が出てくるプラグイン「WP Mail SMTP」を使用します。
これで解決ができなかった人は、前述のいずれかで対処ができない理由があったと考えられるので、対処できる状態になっていれば、このプラグインを使用して解決できるはずです。
(1)WP Mail SMTPでGmailを使うための下準備をします。
まず、ドメインの設定で「SPF」「DKIM」(必要に応じて「DMARC」)の設定をします。
メールアドレスの登録をしていなくても必要になるので、ご注意ください。設定はサーバーのヘルプページを見ながら対応をしてください。
Gmailのアイコンで、黄色+びっくりマークのアイコンがある場合は「なりすましの可能性がある」と判断されたメールです(このアイコンのメールは迷惑メールに振り分けられているはず)が、設定をしても「六角形のはてなマークアイコン」になって正常とは言えないような状態になっている場合、正しく認証ができていないことを示しています。
もし、サブドメインを設定している人はサブドメインとして設定する必要があるので注意してください。
(メインのドメインとサブドメインの両方を使っている人は両方の設定が必要になります)
設定方法は「サブドメイン(左側の部分。wwwやexampleなど) TXT SPFレコード」のように設定します。DKIMは「default._domainkey.サブドメイン」、DMARCは「_dmarc.サブドメイン」のようになります。
サーバーによって異なるので、サーバーのヘルプページやマニュアルを読んでご対応ください。
(2)Google Cloudでアカウントとプロジェクトを作成した後、Gmail APIを有効にして初期設定をします。
基本的には、後述の参考ページを見ながら対応を行えば登録ができるはずです。
(3)WP Mail SMTPの設定でGmailを選んでGmail APIで取得した情報を登録して設定をしてください。
基本的には、後述の参考ページを見ながら対応を行えば登録ができるはずです。
設定の際に参考になる参考ページ(スクリーンショット付き)
既にスクリーンショット付きで分かりやすくまとめられている参考ページがあるので、共有します。
ぼくの方では、見ながら設定をしていて、つまずいたところをまとめています。詳しくは参考ページと下記の「つまづいたところ(まとめ)」をご確認ください。
参考ページを見ながら設定をしていて、つまづいたところ(まとめ)
参考ページの状態から、Google CloudのUIや手順が少し変更になっていたようだったので、分かりにくいところを下記に留意事項としてまとめました。
参考になりましたら幸いです。
Google Cloudのアカウント作成でつまづいたところ
アカウント作成/設定時のステップ2/2の「お支払い情報の確認」は事実上スキップできないので注意してください。無視して「無料で利用開始」をしたとしても、」「お支払いプロファイルの設定」は必須なようで入力しないと先に進めませんでした。
更に、その後で「送信」をしようとしても、先に進めないので、結論から言うと、クレジットカードまたはデビットカードの入力が必須となると考えた方が良さそうです。とはいえ、即時削除とは言えないまでも情報を削除することは可能なので、ご安心ください。
一度お支払い情報を登録した後、メニューから「お支払い」で「請求先アカウントを閉鎖」を選択して閉鎖し、その後にブラウザ右上のアイコン左のメニューから「お支払方法」を選んで登録したカード情報を削除することができました。参考ページを共有しますので、よければご確認ください。
(あれこれ操作したらできたので、自分が対応した手順は忘れてしまいました……)
その後、ダッシュボードからプロジェクト設定に移動し、メニュー内にある「リソースの管理」に移動します。
ここで、不要なプロジェクトはシャットダウン(閉鎖)で閉じ、改めて新規プロジェクトを作成します。(プロジェクト名は任意の名前でOKです)
この段階でお支払い情報の追加登録等は求められなかったので、そのまま進んでいただいて問題ないはずです。
これで必要なアカウントとプロジェクト作成作業が完了しましたので、
ダッシュボードから「マーケットプレイス」に移動します。
マーケットプレイス内の検索キーワード入力欄に「Gmail API」と入力し、一番上付近に表示されるGmailアイコンの「Gmail API」を選択してください。その後、「有効にする」でAPIを有効にします。
その後は、参考ページの情報を元に入力を進めていただけます。
<参考ページが何らかの理由で見れなくなったとき用のメモ(登録時)>
- 使用するAPI名は「Gmail API」
- アクセスするデータの種類は「ユーザーデータ」
- アプリ名は任意(分かりやすい名前をつければOK)
- メールアドレスを設定するところではGmailアドレスを設定
- OAuthクライアントのアプリケーションの種類は「ウェブ アプリケーション」
- 承認済みのリダイレクトURIは、WordPressプラグイン「WP Mail SMTP」有効後の設定で確認できる。コピーして貼り付け
- OAuth同意画面の公開ステータスのテストのところにある「アプリを公開」をするのを忘れない(忘れると、「アクセスブロック~Googleの審査プロセスを完了していません」というエラー画面が表示されます)
WP Mail SMTP設定時につまづいたところ
WP Mail SMTPで設定するために必要な情報(クライアントIDとクライアントシークレット)は右側に表示されていない場合は「!」マーク(情報と概要)で確認することができます。
OAuth同意画面の公開ステータスのテストのところにある「アプリを公開」をするのを忘れてしまったので、「アクセスブロック~Googleの審査プロセスを完了していません」というエラー画面が表示され、しばらく何が原因なのか分からず困ってしまいました。Googleの審査プロセスってどのことなのか、少々分かりにくいように思うので、先に忘れないようにしておいた方がスムーズに設定できると思います。
<参考ページが何らかの理由で見れなくなったとき用のメモ(設定時)>
- 「このアプリはGoogleで確認されていません」の注意画面が出たら「詳細」を選び「安全ではないページに移動」を選択
- 送信元メールアドレスは同じアカウントのGmailのメールアドレスが設定されていることを確認
- 「送信元メールアドレスを強制使用」にチェックを入れる
- 「この名前を強制使用」のチェックは外す
さいごに
当時よりDNS設定が絡むと少々難しく感じていたように思っていたのですが、なりすまし対策に迷惑メール対策に……と、年々サーバーやメールの設定が容易にできるような状態じゃなくなってきたように思います。
各レンタルサーバーもヘルプページの充実やサポート対応の充実、設定代行サービス等、ユーザーができる限り楽に対応できるように対応してくれていますが、不慣れな方だと自身の力で対応が難しくなってきているのも事実……。
自身も今回の対応に慣れているとは言えませんが、もし、お困りの方は設定のお手伝い・サポートができればと思いますので、ぜひ、ご相談いただけたらと存じます。
本記事が困っている人の助けになれたのなら嬉しく思います。
ご相談・お問い合わせ
ホームページ制作・リニューアル・運用・SEO・Web集客、Webマーケティング・Webサイト制作技術・タスク・スケジュール・プロジェクト管理や業務改善のお悩みなどを遠慮なくご相談ください。
資料ダウンロード
サービスのご利用を社内で検討したい方のために、実績やサービス概要、料金表などのクリエイトアコードの案内資料をPDFでダウンロードすることができます。ご自由にダウンロードください。