GASで送信するGmailのメッセージをプレーンでもHTMLでも送れるようにする


mailbox

photo credit: Hindrik S Hurrying to get there via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Google Apps Scriptで備品購入申請を題材にワークフローを作成する方法をお伝えしています。

前回の記事はこちら。

【GASで作るワークフロー】URLクリックで「承認」とするスクリプトの作り方
Google Apps Scriptで備品購入申請を題材にワークフローを作成する方法をお伝えしています。今回は、承認者に送られたGmail内のURLクリックで「承認」とするスクリプトの作り方をお伝えします。

メール内のURLをクリックすることでワークフローの承認ができるようにスクリプトを作成しました。

今回は、Gmailで送るメッセージをHTMLメールでも送れるようにしていきたいと思います。

ということで、GASでGmailで送るメッセージをプレーンでもHTMLでも送れるようにする方法です。

では、行ってみましょう!

前回のおさらい

前回までのおさらいを順を追って解説しますね。

Googleフォームで備品購入申請を送信

以下のような備品購入申請のフォームをGoogleフォームで作りました。

Googleフォームによる備品購入申請

こちら申請内容を入力して送信をすると、連携するスプレッドシートに、送信したデータが蓄積されます。

スプレッドシートに追加された申請データ

承認者にGmailでメッセージが届く

それとともに、承認者に以下のようなメッセージがGmailで届きます。

承認者向けのGmailメッセージ

これは、フォーム送信時のトリガーによって、以下のスクリプトsendMessageが動作することによるものです。

URLクリックで承認の処理を行う

承認者がGmail内のURLは公開しているWebアプリケーションのもので、クリックすると以下のdoGet関数が動作します。

これにより、承認者には以下のWebページが表示されます。

承認後に表示されるWebページ

また、申請者にはGmailにより以下のメッセージが送信されます。

Gmailメッセージで承認のお知らせ

プレーン版とHTML版の箇条書きテキストを返す関数

さて、上記のスクリプトをご覧いただいて、かなり冗長な部分がありますよね。

まず、スクリプトsendMessageの3~7行目および17~21行目あたり、doGet関数の7~11行目、19~23行目および30~36行目あたりです。

メール本文だったり、HTMLだったりするのですが、似たようなことをしているので統一しちゃいたいですよね…

で、どうするかというと、プレーンもHTMLも作る関数を作って、好きなほうを都度チョイスできるようにしていきましょう。

以下のような関数generateBodiesという関数を作りました。

備品購入申請の一行分のデータを配列で受け取って、その内容をプレーン版とHTML版の箇条書きにして返します。

オブジェクトで返せば、複数の値も返せますもんね。

GmailでHTMLメールを送る

せっかくHTML版の箇条書きを作ったので、Gmailで送るメッセージもHTMLメールにしちゃいましょう。

GmailAppのsendEmailメソッドですが、第4引数にはオブジェクト形式で様々なオプションを設定できます。

GmailApp.sendEmail(送信先アドレス, 件名, 本文, オプション)

このオプションに、htmlBodyというプロパティ名でHTML文字列を与えてあげればOK。

相手先のメーラーがHTMLに対応していればHTML表示に、そうでなければ「本文」で指定したプレーンな文字列が表示されます。

ワークフローのスクリプトを整理

以上を踏まえて、スクリプトsendMessageと、doGet関数を整理しました。

申請の通知メールをHTMLメール化

まずはスクリプトsendMessageから。

プレーン版とHTML版の両方の本文を作っているわりには、若干スッキリできたかなと思います。

6行目でgenerateBodies関数を呼び出しています。

また、HTMLメールが送れるようになったので、24行目の部分ですが、URLを剥き出しにせずに「こちら」にリンクを加えることができるようになりました。

実際のメッセージの表示はこちらです。

備品購入申請のお知らせのHTMLメール

承認の通知をHTMLメール化

続いてdoGet関数です。

こちらも、6行目にgenerateBodies関数を呼び出して、送信するメッセージをHTMLメールに変更しています。

結果はこちらです。

HTMLメールで備品購入承認のお知らせ

まとめ

以上、GASでGmailで送るメッセージをプレーンでもHTMLでも送れるようにする方法をお伝えしました。

今回、スクリプトを整理をしつつ、HTMLメールにも対応するようにしました。

以降のシリーズで、ボタンでクリックできるようにしたいので、その布石でもありますね。

次回ですが、URLを二つ用意して申請の「否認」もできるようにしていきたいと思います。

GASのワークフローでURLのパラメータで承認・否認を切り替える方法
Google Apps Scriptで備品購入申請を題材にワークフローを作るシリーズをお送りしております。今回はGASのワークフローでURLのパラメータで承認・否認を切り替える方法をお伝えします。

どうぞお楽しみに!

連載目次:初心者でも作れるGASによる簡単ワークフロー

スプレッドシート、Gmail、フォーム…Google Apps Scriptで操作できるアプリケーションはまさに「ワークフロー」を作成する上で必要なものが揃っています。ということで、このシリーズでは初心者でも簡単に作れるワークフローの作り方について解説をしていきます。
  1. 備品購入申請フォームをGoogleフォームで作成する方法
  2. Google Apps Scriptでフォーム送信時にメッセージを送るスクリプトの作り方
  3. Google Apps Scriptでフォーム送信した内容を含んだメッセージをGmailで送るスクリプト
  4. Google Apps Scriptで特定のURLを踏んだらスクリプトを動作させるdoGet関数の使い方
  5. GASでURLを踏んでスクリプトを動作させたときにパラメータを渡す方法
  6. 【GASで作るワークフロー】URLクリックで「承認」とするスクリプトの作り方
  7. GASで送信するGmailのメッセージをプレーンでもHTMLでも送れるようにする
  8. GASのワークフローでURLのパラメータで承認・否認を切り替える方法

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

コメント

タイトルとURLをコピーしました