Google Apps Scriptでメールアドレスの生存確認【GAS】

とある自分の所のサービスにスパムがちょいちょい来るので、reCaptchaとか仕掛けたり努力はしてるのだけれども、それでも突破してくるケースがあったりする。そこで、さらにこれらを除外するために「メールアドレス生存チェック」を加えてみることにした。

無償で1000クエリ/月まで使えるサービスがあったので、試しにGoogle Apps Scriptで実装してみることにしました。

今回利用するスプレッドシート等

本来はSMTPサーバなどがなければ簡単には出来ないのですが、Webサービスでは以前から生存確認サイトがあって、利用させてもらっていました。

これをプログラマブルに使うにはREST APIが必要なのですがどこも有償のサービスばかり。そんな中Bigdata Cloudというサイトが月間1000クエリまでは無料で使えるとあったので、自分の規模で試すには最適だと思い使ってみました。

reCaptcha Enterpriseで弾けなかったものを、メアドの生存確認でfalseのものも弾くように二段構えにするのが今回のチャレンジです。大抵のスパムはメアドがいい加減なものが設定されているので。

魔改造フォームにreCaptcha Enterpriseを追加する

事前準備

APIキーを取得する

APIキーの取得方法ですが、Bigdatacloud.comにてアカウントを作成後に以下の手順で取得します。

  1. アカウント情報のURLをクリックする
  2. 左サイドバーのCredentialsをクリックする
  3. 既に1つdefaultという形でキーが追加済になってる。
  4. しかし、10分程度待って、ここのStatusがActiveにならないと取得できない。
  5. 別途、Add New Keyボタンで追加も出来ます。
  6. StatusがActiveになったら、Show keyをクリックするとキーが取得できる。

図:Activeになるまで待機が必要

図:Show Keyで取得可能

APIキーを格納する

取得したAPIキーはスクリプトプロパティに格納しておきます。スクリプトエディタを開いたら

  1. スクリプトプロパティを編集ボタンをクリックする。
  2. スクリプトプロパティにapikeyという値を用意
  3. 値にAPI Keyの値を入れる
  4. スクリプトプロパティを保存をクリックする

これをGAS側で毎回取得してURLに組み込んで使っていきます。

図:APIキーをここに格納しておく

ソースコード

ソースコードは至ってシンプル。APIキーと合わせてエンドポイントに対してメールアドレスを送ると、判定結果を返してくれる。なのでサイトのサービス登録時などで、メアドが生きてるかどうかを調べるためにも使えます。この手のサービスが結構REST APIがあるようです。

以下は、emailvalidate関数であり、引数にメアドを取得します。このメアドを元にリクエストを投げて、Trueならば生存し、Falseならば生きていないということを確認可能です。

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)