Google Apps Scriptでhtmlメール送信ツール作ってみた
はじめに
社内イベントのインビテーションとして、Gmailでhtmlメールを複数のメンバーに一斉送信したいという依頼を受け、非エンジニアの方でも簡単にhtmlメールを送れるようなツールを作成しました。
Google Apps Scriptとは
G Suiteプラットフォームでの軽量アプリケーション開発のためにGoogleが開発したスクリプトプラットフォームです。
スクリプトの言語は、JavaScriptがベースで、Googleが提供するサービス(スプレットシート、Gmailなど)と容易に連携できます。
利用する際は、Googleアカウントが必須となっています。
ツール概要
スプレッドシートで入力した送り先メールアドレス、CCメールアドレス、送信者メールアドレス、件名を取得し、htmlメールを送信。
※送信用のhtmlは別途用意。
送信手順
1.スプレッドシートに必要項目を入力
2.送信
コード
スクリプト
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テンプレ
}
);
}
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/
送信用メールテンプレ
<!DOCTYPE html>
<html>
<body>
test
</body>
</html>
補足
今回は、送信タイミングが不定期だったため、作成しませんでしたが、
タイマーを用いての定期実行やスプレッドシートを開く等のアクションを起点とするトリガーを設定できるようです。
詳細は、下記参考資料をご確認ください。
参考資料
Author And Source
この問題について(Google Apps Scriptでhtmlメール送信ツール作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/katsutoshi-yokochi/items/4f03efc97b8de700ce5d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .