SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
previous arrowprevious arrow
next arrownext arrow
 
Shadow
GAS(GoogleAppsScript)

GoogleSpreadSheetから自動で予定をメールお知らせ

予定がいっぱいあると、忘れてしまいがちなので、事前に通知してくれるアプリが欲しいと思っていました。

なので、以前C#で予定を登録して、自動でメール送信するアプリを作りました。

C#アプリ開発 メールお知らせアプリ 開発案件の経験は2案件ほどで、ほとんど経験ありません。 そんな私が独学でプログラミングの勉強をしてきました。 そこで...

ただ、このアプリの難点は、PCを常に起動しておかないとメール送信が起動しないことです。(パソコンのタスクスケジューラでメール送信をするからです…)

サーバを借りるのも面倒だなと思い、GoogleSpreadSheetとGoogleAppsScriptで対応してみました。

スプレッドシートはこちらです。

メール送信アプリの内容

GoogleSpreadSheetに予定とその日付などを入れておくと、設定した時間にメールに送信されるようになります。

時間指定でメール送信をする設定は、Googleのサーバ内に登録するので自分のPCが起動していなくても、実行が可能になります。

こんな感じで予定を入れておきます。

メールを送信する時間を設定しておくと、こんな感じでメールが送信されてきます。

使い方

GoogleSpreadSheetをコピー

以下からSpreadSheetを開きます。

https://docs.google.com/spreadsheets/d/1rULHw4MEEfl6GZiwNdjPgr7S4ZYGQTNEqoAp5jHtUVk/edit?usp=sharing

閲覧専用なので、コピーして保存をしてください。

「ファイル」→「コピーを作成」の順で保存できます。

これで、編集ができるようになります。

予定を記入する(イベントシート)

イベントシートに予定、時間などを記入していってください。

各設定を記入する(設定シート)

設定シートに各設定を記入します。

各列の説明については、D列の備考・説明に記載してある通りです。

メール送信時間は、通知時間は1日2回だけ設定可能です。

メール送信のトリガーをセットする

設定シートの記入した「通知時間1」と「通知時間2」の時間にメール送信を起動させるためには、トリガーの設定をします。

時間指定で起動するトリガーをセット

①「拡張機能」→「Apps Script」をクリックします。

②左端にマウスを移動して、「トリガー」をクリック

③「トリガーを追加」→設定を入れて保存

関数は「setTriggers」です。

時間は「午前0時~1時」にしておいて下さい。

初回のみトリガー保存時は認証が出るかもしれないので、認証しておいて下さい。

「不要トリガー削除」のトリガーをセット

一日に何回もトリガーを実行すると、ごみのトリガーが溜まっていきます。

GoogleSpreadSheetが重くなる可能性があるので、自動で削除する設定をします。

設定方法は送信の設定とほとんど同じです。

関数は「delTrigger

時間は「午後11時~午前0時」にしておいて下さい。

件名・本文(メールフォーマットシート)

件名、本文、署名は「メールフォーマットシート」から変更できます。

「設定シート」の「事前通知日数」を変更すると自動で反映されます。

メール送信の仕様・注意

●「作業シート」は処理に使うので、削除しないでください

●「イベントシート」の対象が「〇」になっているいベンドだけメールの送信がされます。

●「イベントシート」イベント名が入力されていないとメール送信対象になりません。

●送信対象は999行目までなので、定期的に削除しておいてください。

●日付順に並んで送信されます。

ソースコード(GAS)を一部紹介

キレイなソースではありませんので、ご容赦ください…

 

全体解説

流れとしては以下のようになっています。

①送信対象のイベントを取得

②取得したイベントを文章に成形する

③メールを送信する

送信対象のイベントを取得(86行目~)

86行目で、送信する日付に一致したイベントを取得しています。

本当は不要だったのですが、「作業シート」に対象のイベントを表示するようにしています。

Query関数でSQLのようにデータを取得しています。

そして、イベントを「sheetWorkData」変数に格納しています。

取得したイベントを文章に成形する(113行目~)

スプレッドシートの1行を「日付 + 改行 + 場所 + 改行 + 内容」に整形していきます。

ここは対象のイベント件数分ループして本文を作成しています。

124行目でフッターの文言をセットしています。

メールを送信する(127行目~)

オプションの中にCC、差出人の表示名、返信可否をセットしています。

そして、135行目で本文、件名をセットしてメール送信を行っています。

ABOUT ME
LooseCarrot
ブログ運営をしているLooseCarrotです。 興味のあることにトライして発信していきます! プロフィール