LoginSignup
2
4

More than 3 years have passed since last update.

Google Apps Scriptでhtmlメール送信ツール作ってみた

Posted at

はじめに

社内イベントのインビテーションとして、Gmailでhtmlメールを複数のメンバーに一斉送信したいという依頼を受け、非エンジニアの方でも簡単にhtmlメールを送れるようなツールを作成しました。

Google Apps Scriptとは

G Suiteプラットフォームでの軽量アプリケーション開発のためにGoogleが開発したスクリプトプラットフォームです。
スクリプトの言語は、JavaScriptがベースで、Googleが提供するサービス(スプレットシート、Gmailなど)と容易に連携できます。
利用する際は、Googleアカウントが必須となっています。

ツール概要

スプレッドシートで入力した送り先メールアドレス、CCメールアドレス、送信者メールアドレス、件名を取得し、htmlメールを送信。
※送信用のhtmlは別途用意。

送信手順

1.スプレッドシートに必要項目を入力

スプレットシート.PNG

2.送信

スクリプトを開き、下記画像赤線の実行ボタンを押下。
スクリプト2.PNG

コード

スクリプト

sendMail.gs
function sendMail() {

  /* 送信用情報をスプレッドシートから取得 */
  var mailSpreadsheet = SpreadsheetApp.openById('スプレッドシートID'); //メアド入力用スプレッドシート取得
  var mailSheet = mailSpreadsheet.getSheetByName('シート1'); //シート取得

  var mailLastRow = mailSheet.getLastRow(); //最終行数取得
  var arrayToAddress = mailSheet.getRange(2,1,mailLastRow-1,1).getValues(); //送信先メールアドレスリスト取得
  var toaddress = arrayToAddress.join(','); //配列をカンマ区切り文字列に変換

  var ccLastRow = mailSheet.getRange('B:B').getValues().filter(String).length; //CC入力行数取得
  if (ccLastRow == 1) { //CCのアドレスがなければ、CCアドレスを空にする。
    var ccAddress = ''
  }
  else {
    var arrayCcAddress = mailSheet.getRange(2,2,ccLastRow-1,1).getValues(); //CCメールアドレスリスト取得
    var ccAddress = arrayCcAddress.join(','); //配列をカンマ区切り文字列に変換
  }

  var fromAddress = mailSheet.getRange('C2').getValue(); //送信元メールアドレス取得

  var subject = mailSheet.getRange('D2').getValue(); //メール件名取得


  /* メールを送信 */
  var html = HtmlService.createHtmlOutputFromFile("test").getContent(); //送信用メールテンプレ取得
  GmailApp.sendEmail(
    toaddress, //宛先
    subject, //件名
    'お知らせ', //本文
    {
      from: fromAddress, //送り元
      cc: ccAddress, //CC
      htmlBody: html //mailテンプレ
    }
  );
}

※スプレッドシートIDには、スプレッドシートのURLのxxxxの部分を指定。
https://docs.google.com/spreadsheets/d/xxxx/

送信用メールテンプレ

test.html
<!DOCTYPE html>
<html>
  <body>
    test
  </body>
</html>

補足

今回は、送信タイミングが不定期だったため、作成しませんでしたが、
タイマーを用いての定期実行やスプレッドシートを開く等のアクションを起点とするトリガーを設定できるようです。
詳細は、下記参考資料をご確認ください。

参考資料

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4