WordPressのメール送信が遅すぎる件
Wordpressにプラグイン「ContactForm7」と「WP Mail SMTP」を組み込んでお問い合わせフォームを構築しているサイトは多いと思いますが、様々な理由でメールの送信が恐ろしく遅延することがあります。今回は、そんなメールの遅延を無料のサービスだけを使って解決したいと思います。
原因はGmailのAPIを「その他のSMTP」で使うと起きる
Wordpressのメールが遅延する原因は様々あるようですが、筆者が陥ったのは、WP Mail SMTPプラグインを使ってGmailからメールを送信する際に、きちんとクライアントIDなどを取得して、WP Mail SMTPの「Google/Gmail」の設定をしていなかったために起こっていました。
GoogleでクライアントIDを取得する手順
前提条件
まずは、最低でもWordpressとWP Mail SMTPプラグインの導入とGoogleアカウントの取得(Gmailアドレスの取得)が終わっているという前提で話を勧めていきます。
Googleの下記のページにアクセス
上記URLにアクセスしてGmail APIの設定を開始します。
このときにもしも言語の選択や利用規約への同意のダイアログが表示された場合は、適宜操作して画面を進めてください。
「プロジェクトの作成」
ページが表示されたら「プロジェクトの作成」をクリックします
プロジェクト作成後に再度画面を開いた場合
ログイン » ダッシュボード » プロジェクトを選択 » (左メニュー)APIとサービス
プロジェクト名を入力
プロジェクト名はデフォルトをそのまま受け入れても大丈夫ですし、なにか好きな文字を入れてもOKです。「場所」の項目は変更せずそのまま「作成」ボタンを押下します。
ライブラリを選択
Gmail APIを選択して有効化
ライブラリを選択したら、「メールアドレス」または「Google Workspace」の中にある「GmailAPI」を選択します。もしも見つけられない場合は、画面上部にある検索窓から「Gmail API」と入力して探してみてください。
選択後に下の画面が出たら「有効にする」をクリックします。
認証情報を作成
GmailAPIの有効化ボタンを押下した直後には、画面上部に「認証情報を作成」のリンクが現れますし、左のメニューから「認証情報」を選択しても同じ画面にたどり着きます。下記の認証情報の画面が表示されたら、「認証情報を作成」をクリックします。すると画面が変わり、「① 認証情報の種類」が編集できるようになります。
① 認証情報の種類
●「使用するAPI」には「Gmail API」を選択します。
●「アクセスするデータの種類」には「ユーザーデータ」にチェックを入れます。
最後に「次へ」ボタンをクリックします。
画面の下にある「完了」ボタンは未だ押してはいけません。
次へボタンを押すと、「②OAuth同意画面」のセクションが編集可能になります。
②OAuth同意画面
●「アプリ名」には任意の文字列を入力します。
●「ユーザーサポートメール」は、プルダウンを操作してメールアドレスを選択します。
●「デベロッパーの連絡先情報」には、ご自分のメールアドレスを入力します。
入力できたら「保存して次へ」ボタンを押下します。
すると、「③ スコープ」セクションが編集できるようになります。
③ スコープ
このセクションはなにもいじらずに「保存して次へ」のボタンを押下します。
すると「④ OAuthクライアントID」のセクションが編集できるようになります。
④ OAuthクライアントID
●「アプリケーションの種類」には「ウェブアプリケーション」を選択します。
●「名称」には任意の文字列を入力します。
ここまで入力ができたら「承認済みのリダイレクトURI」のセクションのところにある「URIを追加」のボタンを押下します。
④ OAuthクライアントID – 承認済みのリダイレクトURI
●「URI」には「https://connect.wpmailsmtp.com/google/」を入力します。
ここまですべてのセクションの入力が終わったら「作成」ボタンを押下します。
すると「⑤ 認証情報」のセクションに情報が表示されます。
⑤ 認証情報
完了ボタンを押下します。
アプリを公開
アプリを公開
APIとサービスメニューの「OAuth同意画面」を選択し、表示された画面の「アプリを公開」ボタンを押下します。
確認ダイアログ
「アプリを公開」ボタンを押下して表示される確認ダイアログの「確認」ボタンを押下します。
しばらくすると作業が完了し、「APIとサービス」の「認証情報」
認証情報の入手
OAuth 2.0 クライアント ID
アプリ公開後に「APIとサービス」メニューの「認証情報」を選択すると「OAuth 2.0 クライアント ID」セクションには先程作成した情報がリスト表示されているはずですので、リンクの部分をクリックします。
情報の確認
画面の右上に「クライアントID」と「シークレット」が出ていますので、それぞれメモ帳にでも貼り付けておいてください。
WP Mail SMTP設定
WP Mail SMTPに情報を設定する
●「送信元メールアドレス」は後ほど設定します。
●「このメールを強制使用」にチェックを入れます
●「フォーム名」には送信元として表示される任意の文字列を入力します
●「メーラー」には「Google/Gmail」を選択します。
●「クライアントID」と「クライアントシークレット」には先程取得した情報をコピペします。
ここまで入力できたら「プラグインがあなたの Google アカウントを使用してメールを送信できるようにする」ボタンを押下します。
Google:アカウント選択
Google認証①
下記のような警告画面が出た場合は、「詳細」をクリックして詳細情報を表示させます。
Google認証②
「安全でないページに移動」のリンクをクリックして進む。
Google認証③
下記の画面が表示されたら「続行」ボタンを押下します。
登録完了
Googleの認証が終わるとWP Mail SMTPの画面へ戻ります。このとき同画面には「承認」の文字が出ているはずですので、それを確認して、画面左下の「設定を保存」ボタンを押して設定は終了です。
メール送信元の設定
最後に、さきほど保留にしていた送信元メールアドレスを設定して終了です!
メールテスト
WP Mail SMTPのメールテスト機能を使ってメールの動作試験
WP Mail SMTPに組み込まれているメール送信のテスト機能を使って今設定したGmailが正しく動作するかチェックします。
●「送信先」にテストメールを送信する先のメールアドレスを記入します。
メールアドレスを入力したら「メールを送信」ボタンを押下します。
テストメール送信結果
ここまですべてうまく行っていれば「メールを送信」ボタンを押下した後のかなり早いタイミングで「送信完了」の画面が出るはずです。
こんなメールが届きます
さいごに
今回は、WordPressで非常によく使う「コンタクト・フォーム7」などではもう必須となっている「WP Mail SMTP」で、GoogleのGmailを「その他のSMTP」で使用している際に起こるメールの遅延問題の解決策の1つを説明しました。
その他のSMTPではなくちゃんと「Google/Gmail」で設定してあげれば、遅延なくスムーズにメールが送信できるようになると思います。
GmailAPIの場合は、無料で利用できるというのがうれしいですが、その代わりにいろいろな制限が設定されています。
Google/Gmailの制限について
Google/Gmail APIは1回のメール送信で100ポイントを消費するようになっています。
1秒間には250ポイントの制限が設定されており、1日では10億ポイントが上限となっています。これは1秒間に約2通、1日で約1000万通のメールを送信できることになります。また、この他にも様々な動作にポイントが課せられています。これ以上のペースでメールを送信する必要が有る場合は、有料のメール送信エンジンなどを検討する必要が有るかと思います。
どのような動作にポイントがついているのかは以下のURLを参照してください。
https://developers.google.com/gmail/api/reference/quota