void*

おいらは汎用ポインタになれるのか?自分が普段やってることがいかに繁雑か理解するためのメモ

WordpressからGmailを送るなら WP mail SMTP より Gmail SMTP がええよ

ここで紹介するGmai SMTPは、PHPMailerの脆弱性CVE-2016-10033に対して、2016/12/28に更新された Ver1.0.9で対策済みです。
しかし、脆弱性CVE-2016-10045には対応できていない可能性があります。次バージョンでは改善されるかと思います(希望的観測)。

blog.tokumaru.org


ハートロックちんすこうの認知度をどう上げれば良いのか?と考えた時、「そうだ!プレゼント企画だ!」と思いました。

なら「応募フォームを作らなければ!」

ということで、Wordpressで構築していたHPに応募フォームを作ろうと計画しました。

応募フォームに書かれた内容を、Gmailに飛ばすようにして、そのメール内容をGoogle Apps Scriptの定期実行で解析し、Googleスプレッドシートにリスティングすれば、管理もらくらく。

もちろん、Googleへのアクセスは、2段階認証にしているのでセキュリティー面も充実です。

で、このシステムを構築するにあたって、お問い合わせフォームで使っていたContactForm7を流用することにしました。

ContactForm7はとっても便利で、フォーム内容をメールで送ってくれるし、メールアドレスを入力してもらっていれば、「応募受け付けました」というメールも送信できます。

しかし、冷静に考えるとこれまで使っていたメールを送信するためのWP mail SMTPに、不安を感じるようになりました。

その理由や学んだことをまとめてみました。

安全性の低いログイン技術を使用しているアプリ

WP mail SMTPでメールを送信するには、SMTPとユーザー名とパスワードが必要ですが、Gmailを使うにはGoogleアカウント名とパスワードでログインをしなければいけません。

しかし、Googleのセキュリティーはしっかりしているので不用意なことを嫌います。

その1つが、何からGoogleアカウントにアクセスしようとしているか?です。

残念なことには WP mail SMTP はアカウントとパスワードのみでアクセスを試みる「安全性の低いログイン技術を使用しているアプリ」なので、Googleアカウントの安全性の低いアプリの設定でセキュリティレベルを落とさなければなりません。

2段階認証やOAuth2が利用できる方が安心感が高いですよね。

ログインブロックされる可能性の高さ

突如、WP mail SMTP に「SMTP Error: Could not authenticate.」という表示が。

なにかと思ったら、Googleから不明な端末からのアクセスとしてログインブロックしたとの連絡がありました。

心あたりがあることを通知すると、ブロックは解除されましたが、アプリだけではなく、端末としても不振がられると思うと、再びこのような自体が起きる可能性があるのではないかと不安になりました。

もちろん、ログインブロックされたときの応募内容は送信されてきません。気づくのが遅いと応募者は離脱しちゃうリスクが非常に高まります。

どこからでもアクセスできてしまうアカウントとパスワードだけのシステムは、管理レベルがかなり厳しいのではないかと思います。

情報流出の怖さ

Googleへのログインを2段階認証している場合、WP mail SMTP には「アプリ パスワード」という特別な16 桁のパスコードを入力することで、2段階認証を回避します。しかし、この「アプリ パスワード」は、「その他の端末」、「その他のアプリ」としてつくるため、どの端末のどのアプリからアクセスしても違和感がない。

仮にサーバーを乗っ取られたれた場合、「アプリ パスワード」が丸見えなのは恐怖でしかない。

Googleは「アプリ パスワード」は「Google アカウントへの完全なアクセス権が付与している」という。

G Suiteとして、様々な機能をGoogleアカウントで使っている身としてはゾクッとしってしまう。

もし今、15mm厚でもサクサクなちんすこうのレシピ表が漏れたら、弱り目に祟り目になってしまうだろう。

OAuth2で認証できるGmail SMTPが悩みを解決

WP mail SMTPでの悩みはSMTPへのログイン部分からのS Suite関連の情報流出ということをご理解いただけたと思います。
その悩みを解決してくるのがGmail APIを使うためのOAuth2認証という手です。

OAuth2認証であれば、独自のクライアントIDとクライアントシークレットでアクセスをするので、Googleアカウントのパスワードが漏れることがありません。

このOAuth2認証を備えたWordpress用メールクライアントプラグインが、Gmail SMTPです。

これさえあれば、G Suite全体が危険にさらされる心配は消えます。

エイリアスを使って送信元メールアドレスを変えれる

G Suiteの管理画面でメールエイリアスを作成します。

  1. 仮にGoogleアカウントがshigeaki@exsample.comだとして、G Suiteの管理画面でメールエイリアス pokefunat-noreply@exsample.comを作成します。
  2. shigeaki@exsample.comで Gmail にログインし設定「アカウント」「名前」「他のメール アドレスを追加」で fabrication-noreply@exsample.com を追加します。
  3. Gmail SMTP の設定画面で下記のように設定します。
  • OAuth Email Address に shigeaki@exsample.com を
  • From Email Address に pokefunat-noreply@exsample.com を

f:id:motobitsrk:20161225145019p:plain

そして、Wordpressからテストメールを送信すると、発信元はshigeaki@exsample.comではなく、pokefunat-noreply@exsample.comになります。

メールのソースを表示して確認しても、Googleアカウントである、shigeaki@exsample.com はどこにも確認できません。

これで、shigeaki@exsample.com がサイバー空間にさらされることもなく、noreply用のアカウントを有料で持つ必要もありません。得した。

ちなみに、Gmailで追加していないアドレスを、「From Email Address」に設定すると、送信元のアドレスが強制的にshigeaki@exsample.comに書き換えられます。ひえぇぇ〜〜

ということで、WordpressGmailするなら、Gmail SMTPがええよー

それでは皆さん、良いネットライフを。