できること
・大勢の相手にGmailでメールを個別送信することができる。(いわゆる一斉送信にはならない。)
・メール文面を相手によって変えることができる。(相手の名前を文面中に組み込むなど。)
1.Spreadsheetの準備
GoogleSpreadsheetで新しいシートを作成。写真のように送信する相手のアドレスや名前など、送信するメールで個別に変化させたいデータを表形式で入力していく。
左上の「ツール」バーから「スクリプトエディタ」を選択し、別画面でGoogle Apps Scriptを開く。
2.Documentの準備
GoogleDocumentで送りたいメールの本文を作成します。
そのとき、{イベント名}など、送信するメールで個別に変化させたいデータを変数形式で指定していきます。
3.Google Apps Scriptの編集
開いたGoogle Apps Scriptに下記のコードをコピペする。
function sendMail(){
/* スプレッドシートのシートを取得と準備 */
var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得
var rowSheet=mySheet.getDataRange().getLastRow(); //シートの使用範囲のうち最終行を取得
/* ドキュメント「メール本文テスト」を取得する */
var docTest=DocumentApp.openById("ID"); //ドキュメントをIDで取得
var strDoc=docTest.getBody().getText(); //ドキュメントの内容を取得
/* メール表題、fromアドレス、差出人名を準備 */
var strSubject="hogehoge株式会社のイベントにご参加の皆様へ"; //表題
var strFrom="hogehoge@gmail.com"; //From
var strSender="hogehoge株式会社"; //差出人
/* シートの全ての行について社名、姓名を差し込みログに表示*/
for(var i=2;i<=rowSheet;i++){
var strEvent=mySheet.getRange(i,1).getValue(); //イベント名
var strName=mySheet.getRange(i,2).getValue(); //名前
var strTo=mySheet.getRange(i,3).getValue(); //相手のアドレス
var strBody=strDoc.replace(/{イベント名}/,strEvent).replace(/{名前}/,strName); //社名、姓名を置換
/* メールを送信 */
GmailApp.sendEmail(
strTo, //相手のアドレス
strSubject, //表題
strBody, //本文
{
from: strFrom, //fromアドレス
name: strSender //差出人
}
);
}
}
以下、編集のためのcode解説
var docTest=DocumentApp.openById("ID"); //ドキュメントをIDで取得
3で用意しておいた変数設定したメール文面を取得します。DocumentのURLに載っているID(例、https://docs.google.com/document/d/<ID>/edit
の場合、<ID>の部分)をコピペしてコードのIDの部分に貼り付ける。
for(var i=2;i<=rowSheet;i++)
コードに紐付いているSpreadsheetの行数をiとして設定し、2行目から尻の行までを繰り返しデータを取得→メール送信のアクションを繰り返します。
var strEvent=mySheet.getRange(i,1).getValue(); //イベント名
ここではstrEventという変数を設定し、その変数に(i,1)のセルの情報を入れています。例えば一回目の処理ではi=2なので、(2,1)のセルの情報が入ります。strName,strToも同じです。変数を増やしたい場合は、Spreadsheetの列、変数を増やしましょう。
var strBody=strDoc.replace(/{イベント名}/,strEvent).replace(/{名前}/,strName);
strBodyという本文の変数を作っています。この際、strDocという先ほど指定したDocumentからの文章のうち、指定した変数を入れています。例えば、GoogleDocumentで{イベント名}と指定したところには、strEventで取得した変数が入れられます。strNameも同様です。
GmailApp.sendEmail
Gmailを送信します。そのとき、strToに入れられたメールアドレスに、指定したタイトル、本文で送られます。
関数の実行
メール文面、変数設定などを終えたらいよいよメールの送信です。
GoogleAppsScriptの左上の「ファイル」タブからコードを保存した上で、「実行」タブから「関数を実行」、「sendMail」を指定します。すると、Gmailにアクセスするための承認が要求されるため、許可を確認します。
確認しようとすると、いかにも危なそうな確認画面が表示されますが、左下の「詳細」を押して、「『〜』に移動」を押し、承認します。
承認を終えるとsendMail関数が実行され、メールが送信されます。