今まで自サーバからメール送信を行っていたが、Gmailからメール送信する方法に変更することにした。
SMTP経由でのメール送信ができない
WordPressではメール送信機能はありますが、Wordpressと同じサーバ内にメール送信機能(SendmailやPostfixなど)が立ち上がっていることが前提となります。
メール送信機能Gmailなど外部サーバとする場合はWordpress標準のままではメール送信ができないため、プラグインを用いてメール送信するようにします。
WP Mail SMTPプラグインを使用する
外部のメール送信機能を使うためのプラグインはいくつかあるが、今回は「WP Mail SMTP」を使うことにした。
インストール後、左側のメニューに「WP Mail SMTP」が表示されます。
メール設定
Authorized redirect URIの取得
WP Mail SMTPを開き、メーラのところにGmailを選択します。
メーラがいくつか設定できますが、今回はGmailを選択
GmailではClient ID及び Client Secretキーの入力が必要になります。
※Other SMTPでSMTPを用いてG Mail経由でメール送信も可能ですが、セキュリティ上選択しないほうが良いです。(後述)
ここではAuthorized redirect URIの情報をメモして、Gmail側の設定を行います。
Client ID、Client Secretの取得
GCPアクセス、Gmail API設定
Gmailでメール送信を行う場合、Client ID、Client Secretの取得が必要となります。
この値を取得するにはGoogle Cloud Platform(GCP)にて設定する必要があります。
まず、GCPのAPIライブラリにアクセスします。
検索項目にてGmail APIを入力し、詳細画面に遷移します。
「有効」をクリックし、Gmail API画面へ遷移します。
※プロジェクトを選択しないと有効化にならないので注意
今回はデフォルト(My First Project)を選択
プロジェクトへの認証情報の追加
右側にある「認証情報を作成」をクリック
「使用するAPI」では「Gmail API」
「APIを呼び出す場所」では「ウェブブラウザ(JavaScript)
「アクセスするデータの種類」では「ユーザデータ」
を選択します。
次に「必要な認証情報」ボタンを押下するとOAuth同意画面の設定が表示されるので
「同意画面を設定」を選択して同意画面を作成します。
OAuthの同意画面作成
※上記のようにプロジェクト一覧がない場合、別アカウントになっている可能性があるので注意
(デフォルト設定のユーザが表示される場合があります)
「G suite」を契約している場合は User Typeを内部を選択
それ以外の方は外部を選択
※内部のほうがセキュリティは高くなる。
アプリケーション名を決めます。今回はWordpressからの送信が目的のため、そのほかは未記入でもOKです。
保存を押下するとOAuth同意画面作成完了です。
クライアントキーの取得
左メニューから「認証情報」を選択すると前回とは違う画面が表示されます。
「認証情報を作成」から「OAuthクライアントID」を選択します。
OAuthクライアントIDの設定をしていきます。
「アプリケーションの種類」には「ウェブアプリケーション」
「名前」は好きな名前
「承認済みのJavascript生成元」はWordpressのドメイン(Kaedeブログの場合はhttps://kaede.jp)
「承認済みのリダイレクトURI」は「WP Mail SMTP」で取得した「Authorized redirect URI」
を設定します。
保存を押下するとOAuthのクライアントIDとクライアントシークレットが表示されます。
WordPress(WP Mail SMTP)の設定
先ほど取得したクライアントIDとクライアントシークレットを(WP Mail SMTP)画面に入力します。
設定を保存すると「Authorization」に「Allow plugin to send emails using your Google account」ボタンが押せるようになるので、押下します。
Google認証(OAuth画面)が表示されますので、認証処理を行います。
※アプリケーションの種類を内部にしている場合はG Suiteアカウントでしかログインできないので注意
許可後、Wordpress(WP Mail SMTP)画面に戻り、Authorization項目でメールアドレスが表示されれば認証成功です。
確認
Contact Formなどメール送信できる機能でメールを送信し、確認を行います。
GMailでSMTP認証は廃止される予定
Google社は2020年にGSuiteにおいてPOP及びSMTP認証を廃止すると通達がありました。
Turning off less secure app access to G Suite accounts
Outlook2013ではOAuth認証が利用できないため、Outlook2016以降の移行が必須だったんですよね。(Outlook2016でも更新プログラム適用しないと使用できない)
2020年3月に撤回していますが、再び制限かけるかもしれないため、OAuth認証経由で送信したほうが無難です。