2019年3月5日火曜日

【ボツ / 備忘録】Gmailで予約送信するための Googleフォームを作成しよう!

数日前に、Gmail に予約送信機能を実装するには・・・ という記事を書きました。その中で、「Gmailの下書き+スター」+「Google Apps Script」を使った予約送信システムの全貌について詳しく説明したスライドを作成しました。

このシステムでは、件名の冒頭に {YYYY/MM/DD hh:mm} を入れることで、年/月/日 時:分以降に予約送信する仕組みを説明したものでした。実際には1時間ごとにチェックしたりするので、チェックする間隔によって時刻(時:分)ぐらいは遅延します。

件名の冒頭に {YYYY/MM/DD hh:mm} いれるのってミスする可能性あるんじゃない?


全角にしてみたり、フォーマットをミスったり、、ありえそうですよね。とりあえずスクリプトで YYYY/MM/DD と hh:mm スペースが複数あっても大丈夫なようにはしました。しかし予期せぬ入れ方をする人もいるでしょう。

Googleフォームで入力したデータをGmail下書きに保存してくれたら便利じゃない?


とまぁ思ったわけです。実際に、Googleフォームで入力したデータをGmailの下書きとして保存するという情報はネット上にありました。ならできそうだよね!?

やってみましょう!


ということで一日ぐらいかけてゴニョゴニョして完成させたのでした!

でも使えねぇ




筆者のGoogle Apps Scriptに関する技術が足りていない可能性はあります。そのため備忘録として残しておけば、いつかうまくいく日が来るかも知れません。そういう思いもあって残しておくことにしました。

何が問題かというと、Googleフォームは基本的にURLを知っていたら誰でもアクセスできます。G Suiteなら、G Suiteドメイン内のユーザーのみには限定できます。しかし特定個人には限定できません。一方、送信したデータは、Googleフォーム作成者のGmail下書きに保存されます。となるとURLを知られてしまったら、G Suiteならドメインユーザーぐらいまでには限定できますが、いずれにしても他人に自分のGmailの下書きにデータを勝手に保存されてしまうことを意味します。これはセキュリティ的にまずいですよね。

で、Googleフォームで特定アカウント以外がアクセスすると「送信」をdisabled 出来たら問題ないと思いました。しかしそれをどう実装するか分かりませんでした。
なおフォーム送信をして、Googleスプレットシートに保存まではされますが、Gmailへのアクセスはブロックできます。しかし、フォーム送信できてしまう段階で、うまくいけた!って思い込んでうっかり別アカウントを使って送信した場合、予約できていない可能性があります。そうなると運用上まずいから使えねぇ、、なのです。

以上を踏まえた上でどのように実装するかを説明します。

どうやるのか






上記スライドをご参照あれ〜。

2019年3月5日 @kimipooh

0 件のコメント:

コメントを投稿