差し込み+ファイルを添付してメール一斉送信


パスワード付PDFを一括作成するで作成した各人別のファイルを件名や本文に文字列を差し込んでGoogleAppsScriptで一斉送信します。

下準備

1.マイドライブに適当なフォルダを作成し、pdfファイルを保存しておきます。
2.スプレッドシートを作成し、シート名を「送信リスト」に変更。
3.下記のようなデータを用意します。

差し込みデータの準備

A列(1列目)はタイトルに差し込む文字列、B~D列(2~4列目)は本文に、E列(5列目)は送信先です。それぞれを配列に格納します。

function Mail() {
  //個別設定
  var listst = SpreadsheetApp.getActive().getSheetByName('送信リスト');
  var lastrow = listst.getLastRow()-1
  var Title = listst.getRange(2, 1, lastrow,1).getValues();
  var Body01 = listst.getRange(2, 2, lastrow,1).getValues();
  var Body02 = listst.getRange(2, 3, lastrow,1).getValues();
  var Body03 = listst.getRange(2, 4, lastrow,1).getValues();
  var ToAddress = listst.getRange(2, 5, lastrow,1).getValues();

ファイルを添付して送信

  for( var i = 0, l = ToAddress.length; i < l; i = i + 1 ) {  

    //添付ファイルの設定
    var files = listst.getRange(i + 2, 6).getValues();
    var file = DriveApp.getFilesByName(file_name).next();

    //送信メールの設定
    GmailApp.sendEmail(
    ToAddress[i],
    '' + Title[i] + 'さん】住所確認のお願い', 
    'ここに本文\n' + 
    '本文本文本文本文本文本文本文本文本文本文本文本文本文本文\n' + 
    '本文本文本文本文本文本文本文本文本文本文本文本文本文本文\n' + 
    '項目1:' + Body01[i] + '\n' +
    '項目2:' + Body02[i] + '\n' +
    '項目3:' + Body03[i] + '\n' +
    '本文本文本文本文本文本文本文本文本文本文本文本文本文本文',{
      from: '******@gmail.com',
      name: 'メール自動配信',
      cc: '******@gmail.com',
      attachments:file,
    });
    var dtLimit = new Date();  //送信日時の取得
    listst.getRange(i + 2, 7).setValue(dtLimit); 
  }
}

無事に送信されました。