WordPressでGmailをSMTP認証する方法

はじめに

WordPressサイトでGmailの送信ができない事象が発生しました。
プラグイン「WP Mail SMTP」を利用することで、無事送信できるようになりましたので、その手順をまとめました。

手順の概要

  1. Google Cloud ConsoleでのGmail API設定
  2. WordPressでのSMTP設定(「WP Mail SMTP」設定)

1. Google Cloud Consoleの設定

まずはGoogle Cloud Consoleで必要な設定を行います。

Gmail APIの設定

  1. Google Cloud Consoleにアクセス
  2. 「プロジェクトの作成」をクリック
  3. プロジェクト名(例えばtest)を入力→「作成」をクリック
  4. 左側のメニューから「APIとサービス」をクリック
  5. 上部の検索バーで「Gmail API」を検索
  6. 「Gmail API」をクリック→「有効にする」をクリック

OAuth同意画面の設定

  1. 右上の「認証情報の作成」ボタンをクリック
  2. 「ユーザーデータ」を選択→「次へ」をクリック
  3. 以下の項目を入力:
    アプリ名       :プロジェクト名と同じでOK
    ユーザーサポートメール:サイトで使用するメールアドレスを設定
    デベロッパー連絡先情報:ユーザーサポートメールと同じでOK
  4. 「保存して次へ」をクリック
  5. 「スコープ(省略可)」は特に入力せず「保存して次へ」をクリック
  6. アプリケーションの種類:「ウェブアプリケーション」を選択

認証情報の作成

  1. 左側のメニューから「認証情報」を選択
  2. 「認証情報を作成」→「OAuthクライアントID」を選択
  3. 以下の項目を設定:
    アプリケーションの種類:ウェブアプリケーション
    URIを追加:https://connect.wpmailsmtp.com/google/
  4. 「作成」をクリック
  5. クライアントIDが表示されますが、一旦「完了」をクリック

アプリの公開設定

  1. 左側のメニューから「OAuth同意画面」に移動
  2. 「公開ステータス」の下にある「アプリを公開」ボタンをクリック

クライアントIDとクライアントシークレットの取得

  1. 左側のメニューから「認証情報」に移動
  2. 認証情報の作成時に設定した「名前」をクリック
  3. 画面右側に以下が記載されています:

2. WordPressでの設定

  1. WordPressの管理画面で「設定」→「WP Mail SMTP」を開く
  2. クライアントIDとクライアントシークレットを入力→「Googleと連携」をクリック
  3. 「wpmailsmtp.com(安全ではないページ)に移動」をクリック
  4. 「wpmailsmtp.comがGoogleアカウントへのアクセスを求めています」と表示→「続行」をクリック

まとめ

私はECサイト(WooCommerce)構築を行った際に、注文時のお客様宛てメールが送信されないという問題を解決するために本対応を行いました。
自分のテストサーバでは送信できるのに、本番サーバでは送信できない、という何が起こっているんだ?状態から、原因を切り分けして至った結論がこの対応でした。
制作したサイトやプラグインの問題ではなく、サーバ側のセキュリティ設定が原因となりうるという経験を積むことができました(安全性や信頼性を保つために必要な設定なので、これはこれで大切な設定です)。
今回の経験を記事化し、同じ問題に直面している方の参考になれば幸いです。

参考記事1:https://makoblogu.com/wordpress-wpmailsmtp-gmail-setup
参考記事2:https://ruco.co.jp/knowledge/wp-smtpauth-gmail/