WordPressのお問い合わせフォームを設置した際に、メール送信の設定が必要となり、Gmailを使った設定を行ったので紹介します。
簡単に設定できると思いきや、Gmailのセキュリティ対策で、信頼性の低いアプリからの接続が拒否されるようになっています。(これは正しいと思います)セキュリティを下げて接続させることもできるのですが、それはちょっと….ということで、Gmail APIを使って設定しました。
設定手順は以下です。
- プラグイン(WP Mail SMTP)のインストール
- WP Mail SMTPの設定
- Gmail APIの設定
- Gmail APIの情報をWP Mail SMTPに反映
1.プラグイン(WP Mail SMTP)のインストール
まずは、WordPressでメール送信をするために、WP Mail SMTPというプラグインをインストールします。
上記プラグインをインストールして有効化します。
2.WP Mail SMTPの設定
最初に、送信元アドレスと送信者名を入力します。
メーラーでGmailを選択します。
※くれぐれも「Other SMTP」を選択しないように
Gmailの設定項目が表示されます。ここは、Gmail APIの設定が終わってから入力します。
ここに情報をいれるために、Google側にGmail APIの登録を行います。
3.Gmail APIの設定
WP Mail SMTPでGmailを使ってメールを送信するには、Google API(Gmail API)を使います。GoogleAPIを使うには、OAuth2.0というプロトコルを使って認証する必要があるので、Google Cloud Platform(CGP)でAPIの設定を行い、認証に必要な情報を取得します。
以下のリンクからGoogle Cloud Platform(CGP)にアクセスできます。
https://console.cloud.google.com/
まずは、Google Cloud Platform(CGP)にGoogleアカウントでログインしてから、今回使用するAPIライブラリの「Gmail APIを有効化」します。
ログインしたら、サイドバーの「APIとサービス」→「ライブラリ」を選択します。
検索欄に「Gmail」と入力します。
「Gmail API」を選択します。
初めての場合は「有効にする」ボタンが表示されるので押します。
有効化すると、OAuth用の認証情報を作成するボタンが表示されます。
ボタンを押して認証情報を作成します。
以下の画面が表示されるので、「OAuthクライアントID」を選択します。
アプリケーションの種類で「ウェブ アプリケーション」を選択、名前を設定して、作成ボタンを押します。
OAuth同意画面をクリックしてください。許可をもらう認証画面に表示するアプリケーション名を入力して、保存ボタンを押します。
先程の認証画面に戻って、クライアントIDを作成します。
ここでは、クライアントIDの名前、サイトのドメイン名、WP Mail SMTPのGmail設定で表示されていたURIを設定します。
保存ボタンを押せば完了です。
作成が完了すると、画面の右側に以下のような「クライアントID」と「クライアントシークレット」が表示されます。WP Mail SMTPに設定するのでコピーしておいてください。
4.Gmail APIの情報をWP Mail SMTPに反映
先程コピーしたクライアントIDとクライアントシークレットを張り付けます。Authorization欄にあるボタンを押すと、Googleアカウントにアクセスリクエストが送られます。
リクエストがきたら「許可」すれば、WP Mail SMTPでメールを送れるようになります。
最後にWP Mail SMTP側のEmail Testで「Send Email」を押して、メール送信が確認できればOKです。
これで、Google側のセキュリティ設定を変更せずに、WP Mail SMTPでメール送信ができるようになりました。
Gmail APIは、Pythonを使ったメール送信などにも使えるので覚えておいた方がいいですね。
参考までに、Gmail APIには利用制限があるようです。
おおよそ1日当たりで1日当たりで1000万通、1秒当たりで2通程度が上限のようです。普通に使う分には制限にはかからないとは思います。
【参考】Google APIのOAuth認証情報確認方法
GoogleAPI用のOAuth認証情報は、Google Cloud Platform(CGP)から確認できます。
https://console.cloud.google.com/ へアクセスして、「APIとサービス」⇒「認証情報」を選択します。
OAuth2.0クライアントIDを選択します。
OAuth2.0の認証情報(クライアントIDとクライアントシークレット)が右上に表示されます。