7
1

More than 1 year has passed since last update.

【PTA-DX】PTAの共有GmailをLINEに転送した話

Last updated at Posted at 2022-04-01

<2022/4/22追記>
getMonthの仕様によってメール受信日時が前日になるバグに対応

<2022/04/03追記>
  下書きを拾ってしまうバグに対応
  送信済メールも通知されるよう仕様を変更
  別端末でのログイン時の「セキュリティ通知」メールを除外するよう仕様を変更

子どもが小学生になり、PTAの業務に携わることになりました。
どんなアナログ業務が待っているんだろうとワクワクしていましたが、
昨年までの担当の方がデジタル化を進めてくれていて、
GoogleドライブとGmailを使った運用をされているようでした。

前年度の担当者からの引き継ぎを3月に始めたものの、
一ヶ月で不便に思うことが出てきました。
前年度の方が「好きにやっていいよ」とおっしゃってくれたので、
この機会にPTA業務のDXを進めてみようと、
第一弾としてGmailで受信したメールのLINE転送から始めてみることにしました。

トポロジー

pta-dx01.png

PTA業務の概要

  • 小学校の放課後のイベントを企画・運営する
  • 参加している業務のグループは5名程度
  • イベント企画のために、市役所や学校の担当者と連絡が必要
  • 連絡はGmailでメールを行う
  • 書類はGoogleドライブ上で管理
  • ひとつのGmailアカウントをグループに所属する全員で共有する
  • 主要デバイスはスマホ。書記担当(私)はPCも利用
  • グループ内の連絡は専用のLINEグループのトークを利用

発生した問題

市役所の方からGmailにメールが届きました。
メンバーの一人が、届いた瞬間にGmailからこのメールを開き、既読になりました。
すると他の人のスマホでは通知が消えてしまい、メール受信に気づけませんでした。
なお、このメールは最初にメールを開いた人ではなく、それ以外の人がやりとりしていたものでした。
つまり、本来メール受信を気付くべき人が気づけなかったということです。

問題の原因

根本原因は Googleアカウントを共有していること です。
正しい解決策は、アカウントの共有をやめて、メンバー各自のGmailアカウントに
Googleドライブのファイル/フォルダの共有をかけることが最善です。
そのうえで、連絡は各自のメールアドレスを使って行うべきです。
ただし、PTAとは特殊な組織で、ママ友パパ友というプライベートな関係で成り立ちます。
個人のGoogleアカウントはお互い明かしたくない秘密を抱えたものであり、
正しい解決策をとることは難しそうだと判断しました。

※補足:秘密は色々考えられるけど、主にオタク趣味的な部分が可能性高い

解決方法

Gmailで受信したメールをLINEのトークグループに転送することにしました。
PTAのメンバー間ではLINEでのやりとりがメインで、LINE通知はもっとも気にする通知のひとつです。

使ったサービス

以下2つのサービスを使って実装しました。実装方法は探せば他にもゴロゴロ転がってます。
LINE Notify
Google Apps Script

参考URL:https://sp7pc.com/gadget/line/23926
)

設定手順

主に以下URLに沿って設定します。ちなみに私は「本文あり」としました。
https://sp7pc.com/gadget/line/23926

ただし、当投稿では以下2つの問題の解決をアドオンします。

  • 既読メールの受信に気づけない問題
  • App Script上の時刻がアメリカ時間になってしまう問題

既読メールの受信に気づけない問題への対処

App ScriptがGmailからメールをフェッチしてくる条件を変更します。

//検索条件指定
var strTerms = '(-セキュリティ通知 in:inbox OR in:sent after:'+ time_term + ')';

is:unreadを削除します。
これがあることで未読メールだけしかフェッチしないため、指定すると今回の既読メールスルー問題を解決できません。
また、-セキュリティ通知で初めての端末でのログイン時に通知されるメールを除外、
in:inbox OR in:sentで、検索条件を受信トレイと送信済に限定しました。これを指定しないと、作成中の下書きまで拾ってしまいLINE通知がひどいことになります。

App Script上の時刻がアメリカ時間になってしまう問題

こちらの記事で紹介されている方法を採ります。
https://masa-enjoy.com/gas-dateobject-timezone

  • appsscript.jsonの有効化
  • TimeZoneを”Asia/Tokyo”に変更

メール受信日時の月(Month)が前月になってしまう問題

JavaScriptのgetMonth仕様の問題です。
getMonthで取得する変数をNumberで数値に変換し、+1することで修正します。

 valMsgs[i] = " " + (Number(myMsgs[i].slice(-1)[0].getDate().getMonth()) + 1) + "/"+ myMsgs[i].slice(-1)[0].getDate().getDate()

設定は以上で終了です。
動作確認は、PTAメールアドレスにて、自分自身にメールを送信することで確認しました。

まとめ

ファーストステップとしてGmail-Line連携を行いました。
今後は年間スケジュールの管理とメンバーのタスク管理を何かのサービスで実現したいなー

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1