【GAS】【非エンジニア向け】メール送信を自動化してみた！（業務効率化）


#概要（ゴール）
<b>・GAS（Google Apps Script）を使ってGmailから自動送信できる
<b>・非エンジニア（特に人事・総務）がなんとなく理解して実装できる状態
#【STEP1】 GAS実行準備
##スプレッドシートを開く
![スクリーンショット 2020-12-17 22.16.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/bd7c0aa5-855a-6b5c-47c9-7f4b0a8bd7ea.png)

###**ツール**を選択
![スクリーンショット 2020-12-17 22.17.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/0bac760c-6579-7acf-7f60-b109d26dd61a.png)

###**スクリプトエディタ**を選択
![スクリーンショット 2020-12-17 22.19.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/2b4cc265-c96a-c69f-e404-bac3a79846e8.png)

#【STEP2】 メール自動送信

Gmailからの自動送信は以下のコードを記述するだけでOKです。

    GmailApp.sendEmail(送信先メールアドレス,件名,本文内容,{オプション});


![スクリーンショット 2020-12-17 22.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/c5a30819-5aa0-3440-cc30-2018568f2e5e.png)


    function myFunction(){
        ~コードを記述~
    }
関数は`function`で表し、`myFunction()`のように関数名を半角スペースを開けて記述します。そして、`{}`の中にコードを記述すると、実現したい関数を実行できます。

まとめると、以下のコードを記述するとGmailの自動送信ができます。

    function myFunction(){
        GmailApp.sendEmail('000@gmail.com','【確認依頼】テスト','〇〇様\nお世話になっております。\nテストです。');
    }

※ちなみに、`\n`は**改行**を表すコードです。
###【番外編】オプションの一覧
前述では、以下のコードでGmailの自動送信できると記述しました。

    GmailApp.sendEmail(送信先メールアドレス,件名,本文内容,{オプション});

この`{オプション}`は以下のプロパティを追加できます。

|`プロパティ`|`型`| `説明`|
|---|---|---|
|name|文字列|送信者名（デフォルト設定はGmailのアドレスが表示されます）|
|bcc / cc  |文字列|cc/bccを設定します。複数の場合はコンマ区切りで記述してください|
|replyTo |文字列|返信する時に返信先を指定できます|
|htmlbody |文字列|文字を装飾したい際に、htmlで記述した本文を作成できます（その場合、カンマ3つ目の本文内容は無視されます）|
|from |文字列|差出人アドレスを指定できます（ただし、**ログインしているアカウントのメールアドレス**でないとエラーが出ます）|
|noReply |ブール値|返信不可かどうかを決定する（G Suiteアカウントでしか適用されないので注意！）|
※ブール値とは、`true/false`のこと。2値をとるデータ型。
※htmlの記述については、以下を参考にしてください。（結構わかりやすいです）
https://developer.mozilla.org/ja/docs/Learn/Getting_started_with_the_web/HTML_basics

以下を参考にしてください。

    GmailApp.sendEmail('777@gmail.com','【確認依頼】テスト','〇〇様\nお世話になっております。\nテストです。',{name:'天才',bcc:'0@gmail.com,00@gmail.com',cc:'00000@gmail.com',replyTo:'0000@gmail.com',noReply:true,htmlbody:'<h1>おはよう</h1>'});

他にも、プロパティが存在しますが、難しいのでここでは説明を省略します。（`attachments`・`inlineImages`）
https://developers.google.com/apps-script/reference/gmail/gmail-app#sendEmail(String,String,String,Object)

#【STEP3】 送信準備
##保存
![スクリーンショット 2020-12-18 11.27.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/dbaecb8f-1dd7-99db-3fde-392464ac0ec1.png)
※`ctrl（command）+S`でも保存可能です
##プロジェクト名決定
![スクリーンショット 2020-12-18 11.28.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/2756d020-201e-bcd1-0e93-7e5a71f49302.png)
##許可
上部の`▶︎`を押すと、コードが実行されます。
しかし、初めてそのプロジェクトで実行する際は**許可**をする必要があります。
![スクリーンショット 2020-12-18 11.28.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/b19e17f6-1a5e-42b8-d346-b965e5af9766.png)
以下の画像の順番で進めてください。
![スクリーンショット 2020-12-18 11.28.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/07cda6da-1e95-5b51-d4c4-66da52bd8fa0.png)
（プライバシーの関係で隠していますが、自身のアカウントが表示されて選択することができます。）
![スクリーンショット 2020-12-18 11.28.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/0d7e7ee9-bcbc-9684-cac5-60690f89556b.png)
![スクリーンショット 2020-12-18 11.28.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/c4576bde-568e-d833-ced5-3d9e25003230.png)
![スクリーンショット 2020-12-18 11.28.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/5a7189d7-466c-b645-4dcf-78fd46872220.png)
再び`▶︎`を押すと、コードが実行されると思います。
#【STEP4】 トリガー設定
>参考（おすすめ）▼
https://tonari-it.com/gas-timed-driven-trigger/#toc2

最後に、トリガーの設定を行います。
トリガーを設定しておくと、`▶︎`を任意で押さなくとも、自動的にメール送信を実現することができます。
![スクリーンショット 2020-12-18 11.51.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/ffca6612-70c6-062c-87d4-35671391a78e.png)

###①トリガーを設定する関数を選択
今回は、`myFunction`のみ関数を定義していないので、`myFunction`を選択します。

###②イベントのソースを決定
イベントのソースには、`スプレッドシートから`・`時間主導型`・`カレンダーから`の3つがあります。
####`スプレッドシートから`を選択した場合
以下の4つから選択します。
![スクリーンショット 2020-12-18 12.14.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/58d702fe-5a52-aad4-280c-774a65796987.png)
詳しくはこちらの記事を参考にしてください▼
https://www.acrovision.jp/service/gas/?p=269
####`時間主導型`を選択した場合
時間ベースのトリガータイプを選択します。
例）毎朝6〜7時にメール送信したい → `日付ベースのタイマー`を選択します。
![スクリーンショット 2020-12-18 12.09.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/33b9ff9e-50a4-a86e-e952-badfbeed8e3e.png)
そのあと、時間の詳細を決定します。
####`カレンダーから`を選択した場合
![スクリーンショット 2020-12-18 12.06.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705006/4cd97eef-172f-a09e-085a-8cfbc47ca559.png)
`カレンダー更新済み`のみです。オーナーのメールアドレスを入力してください。
#備考
【LINEbot×GAS】ココイチbotつくってみた！（メモ）
https://qiita.com/ryotaro00963/items/f61a29c497fe59a97ef2

GASを1から勉強するなら、このサイトを1通り学習することをおすすめします！（全24章あります）
https://tonari-it.com/gas-script-editor/