【IT】分散通知の仕組みを作る〜Googleアプリ、GAS及びAPIの活用 STEP2: 電子メール配信


<分散通知の仕組みを作る STEP2: 電子メール配信>
別ページで表示


STEP2として電子メール配信を説明します。実際の配信の手順は、STEP5のブログ配信を先に行い、そのリンクURLを、電子メール、LINE、Push7の関係リンクにします。

ここでは、昔からある、電子メールによる配信、グループメール配信を基本形として先に扱うことにします。

なおGoogleグループメールの配信先ですが、Googleメールでよく使うGoogle連絡先を使います。Google連絡先にまず登録(※1)→GoogleグループアプリへGoogle連絡先に登録されているメールアドレスを呼び込んで登録、という手順を行なっています。原本の共有化です。

ビジネス用途であるGoogle workspaceというサービスがあり、これの方が本格的ですが、あくまで無料の小規模な利用から始めますので、普通のGoogle個人アカウントを使います。これであっても、配信件数限度は少なくなりますが、Googleグループメール は使うことができます。

Google個人アカウント@gmail.comを持っていれば、
Google個人アカウント@googlegroups.com というグループメールアドレスが取得出来ます。

例えば、適当ですが、nihonnofujisan001@gmail.com、を持っていれば
nihonnofujisan001@googlegroups.com というグループメールアドレスが取得出来ます。

使い方は簡単、メールをたった1個、以下のように打てば、グループ全員に届くことです。

TO:nihonnofujisan001@googlegroups.com
FROM:nihonnofujisan001@gmail.com
ーーーーーーーーーーーーーーーーーーーーー
***の件
****
********

※1: 当面、手作業で配信依頼先のメールアドレスを登録します。別のWebサイトで配信の申し込みができるようにしておりGoogleフォームを通じてGoogleSSへ記録しています。従って同じGoogleアカウントのGoogleアプリ同士なので、APIか関数で割と簡単にGoogle連絡先へ自動登録が可能でしょう。しかしメールアドレスについては、一応、イタズラの有無など人間がチェックした方がいいと捉えています。

ポイント解説

<1>Googleグループアプリの設定〜オーナーの配信のみに制限。

このグループメールは、グループメンバー間での議論に利用することが多いと思われますが、今回、私がこれを使う目的は、緊急通知の配信、です。一方通行です。従って、投稿者は私のみ、メンバーからは投稿不可、の制約を加えています。

グループ設定の中の「投稿ポリシー」の設定:

メールでの投稿を許可許可する
ウエブからの投稿を許可許可する
会話の履歴オフ
投稿者に非公開で返信できるユーザーグループのオーナー
ファイルを添付できるユーザーグループのオーナー
コンテンツを管理できるユーザーグループのオーナー
メタデータを管理できるユーザーグループのオーナー
グループとして投稿できるユーザーグループのオーナー
デフォルトの差出人投稿者のアドレス
メッセージの管理管理しない
新しいメンバーの制限新しいメンバーに投稿を許可しない
スパムメッセージの処理スパムに分類されたすべてのメッセージを拒否
拒否されたメッセージに関する通知オフ

以上のように、グループのオーナーからの一方的な通知に限定しています。

送信テストをするために、少なくとも2個、自分で確認できるメールアドレスを連絡先→グループメール連絡先選択、を済ませておきます。

どのメーラーでもいいですので、例えば私は、Macの純正アプリである「メール」アプリを使って以下のように送ってみます。Gmailの送信を使う必要はありません。

その結果、以下のようなメールが複数箇所へ届けばOKです(赤塗りが多くてすみません。)ーー以下の部分は、グループ設定の中で、規定できます。但しーーー以下の内容は、無料のアカウントでは変更できません。やむを得ず、「下の段落は無視してください。」と注釈しました。

以上でGoogleグループメール側の準備が出来ました。

<2> GoogleSSへの取り込み、及び GAS記述

緊急通知なので、送信する内容はコンパクトに、subject とbodyだけです。

グループメール投稿のGoogleSS

この画面には、Googleフォームへ入力した通知文が取り込まれるため、内容を確認するだけです。問題がなければ、「グループメール 投稿」ボタンを押します。

通知文の読み込み:

IMPORTRANGE関数を使います。
読み込みたいGoogleSSのURLが、

https://docs.google.com/spreadsheets/d/【この部分】/edit#gid=0

【この部分】を以下の部分に当てはめてください。sheet1は実際のシート名、A20のところも実際のセル位置を当てはめてください。

タイトル、本文、関係リンクそれぞれ、当てはめてください。

=IMPORTRANGE("【この部分】","sheet1!A20")
=IMPORTRANGE("【この部分】","sheet1!A22")
=IMPORTRANGE("【この部分】","sheet1!A24")

GASの記述:

赤字は、例示。

function sendMail(){
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  const from = 'nihonnofujisan001@gmail.com';
  const to = 'nihonnofujisan001@googlegroups.com';
  const subject = sheet.getRange(3,1).getValue();
  const body = sheet.getRange(9,1).getValue();
GmailApp.sendEmail(to, subject, body);
}

わずか9行です。

<3>GoogleSSのGASをiPhoneで使う裏技。PC版サイトで扱う。

iPhoneでの操作方法は、以下の動画をご覧ください。

PC版にした後、iPhoneを横向きにするのがポイントです。

  字幕の翻訳はトップ左の言語をお選びください。

<字幕は、画面右下の字幕選択をON↑>
<字幕>
〜緊急通知をiPhoneから投稿〜
(1)Google Chromeを使います。
(2)ブックマークから目的のGoogleSSを選びます。
(3)モバイルサイトなので画面表示が一部分しか見えません。
(4)「PC版サイトを見る」を選択します。
(5)全体が見えると、今度は文字が小さ過ぎる。
(6)iPhoneを横向きに変えます。
(7)キーボードが邪魔。ここの「閉じる」を押します。
(8)見やすい。
(9)文章の最終チェックをします。
(10)「グループメール投稿」のボタンを押します。
(11)スクリプトが実行されています。
(12)スクリプトが終了。
E(13)このGoogleSSを閉じます。

STEP3以降、GoogleSSの操作は、これと同じやり方になります。
つまり、「作業の標準化」です。アプリは違っても操作方法は同じ。作業方法を一つを覚えれば、電子メールも、LINEも、Push7も、ブログ投稿も、それで済んでしまう。

それでは次回STEP3は、LINEを使ったメッセージ配信をLINEアプリを触らずに外側から実行する方法を説明します。

STEP3

以上。