メーリングリストの「なりすまし」判定を Gmail と Google Apps Script で回避する方法

携帯のメールアドレスで Google グループ(メーリングリスト)に参加したら、「なりすまし」と判定されメールが届いてこないといった経験はないでしょうか?
携帯キャリアのセキュリティレベルの設定を変更することで大抵は解決できますが、メンバーが大勢いたり、ITに詳しい人が少ない場合、この作業が結構面倒だったりします。
今回、Gmail と Google Apps Script(GAS) を使用し、この問題を回避させる事ができたので手順をご紹介します。

Gmail で受信し、GAS で監視・送信する

方法は、Gmail でメーリングリストの配信を受信し、GAS でその受信状況を監視、新着を見つけた場合は GAS 自身がメールの内容を携帯アドレスに送信する、というものです。 この方法だと Gmail アカウントからの送信メールとなるので、携帯側で「なりすまし」と判定されずに済みます。

大まかな手順としては以下のようになります。

  1. 専用の Gmail アカウントを作成し、Google グループに参加させる
  2. Gmail の監視+自動送信プログラムを GAS で作成する
  3. 一定時間毎に GAS のプログラムが実行されるよう設定する

Gmail の監視+メール送信プログラムの作成

以下手順で、Gmail の監視+自動送信プログラムを GAS で作成します。

  1. Google ドライブにアクセス
  2. [作成] → [スプレッドシート] の順でクリック(スプレッドシートが表示される)スプレッドシート
  3. [ツール] → [スクリプトエディタ] の順でクリック(スクリプトエディタが表示される)スクリプトエディタ
  4. 以下の「監視+自動送信プログラム」を入力し保存する

  1. function myFunction() {
  2. var threads = GmailApp.getInboxThreads();
  3. for (var i = 0; i < threads.length; i++) {
  4. Utilities.sleep(1000);
  5. var msgs = threads[i].getMessages();
  6. for (var j = 0; j < msgs.length; j++) {
  7. var msg = msgs[j];
  8. // 未読か?
  9. if (msg.isUnread()) {
  10. // 送信!
  11. MailApp.sendEmail(
  12. "example@hoge.co.jp", // 「なりすまし」判定する携帯アドレスを記述
  13. "【転送】" + msg.getSubject(),
  14. msg.getFrom() + 'からメールが送信されました\n\n' + msg.getPlainBody(),
  15. {
  16. bcc:"example@fuga.co.jp" // 管理者のアドレスを記述
  17. }
  18. );
  19. // 既読にする
  20. msg.markRead();
  21. // アーカイブへ移動
  22. threads[i].moveToArchive();
  23. }
  24. }
  25. }
  26. }

未読の受信メールを見つけたら、メールの内容を指定したアドレスに送信し、対象となった受信メールは既読にしアーカイブへ移動します。

一定時間毎に GAS のプログラムを実行する

以下の手順で一定時間毎に GAS のプログラムが実行されるように設定します。

  1. 前述の手順でスクリプトエディタを起動
  2. [時計のアイコン] をクリック(トリガー設定画面が表示される)
  3. 以下のよう入力し保存する
    • 実行:”myFunction”
    • イベント:”時間手動型”、”分タイマー”、”15分ごと”

trigger

以上です。

最後に

GAS、前々からちゃんと使ったら便利なんじゃないかなと思ってましたが、やっぱり便利ですね!^^)
Google の各種サービスの API とスクリプトで連携できるのって、アイディア次第でいろいろできそうな気がします。

キャリア別受信設定の変更方法が、下記サイトにて紹介されてます。できるだけ各自で携帯の設定を見直してもらった方が良いでしょう。

以下のサイトを参考にさせていただきました。

ありがとうございました。