SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
東南アジアをバックパッカーしながら転職活動をした記録
東南アジアをバックパッカーしながら転職活動をした記録
7年目で初の転職活動 2カ月で内定獲得した記録
7年目で初の転職活動 2カ月で内定獲得した記録
おすすめのプログラミングスクール めざせ就職・年収アップ!
おすすめのプログラミングスクール めざせ就職・年収アップ!
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
ブログ開始3年が経った月収が1万超えてた!
ブログ開始3年が経った月収が1万超えてた!
プログラミング独学・スクール・就職(目次)
プログラミング独学・スクール・就職(目次)
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です。 興味のあることにトライして発信していきます! プロフィール