GASで複数の宛先にメール送信するコード例(コピペで動く)

複数の相手にメール送信する方法を知りたい!

こんな人にこの記事はピッタリです。

GASで複数の相手にメールを送りたい場合ありますよね。

この記事では、複数の相手にメールを送れるようにしたコード例を紹介していきます。

コピペで使えるコードにしていますので、そのまま使うことができるはずです!

私も実際にテストして、使えたものですので安心して使っていただければと思います。

目次(クリックで読みたい部分にジャンプできます)

コード例

実際に使えるコードを載せます。

使い方手順

①コードをGASにコピペ

②以下ファイル例に沿って、スプシに書き込む。

③実行。メールが送信されます。

スプシのファイル例

実際に使ってるスプシの例です。

const email_column = 3;
const pw_column = 4;
const first_row = 2;
const mail_title_address = [3,2];//タイトル
const mail_body_address_1 = [4,2];//本文1
const mail_body_address_2 = [5,2];//本文2
const mailfrom_address = [1,2];

var data_sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("データ");
var mail_sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("メール");


function mailing() {

  for (let row = first_row; row <= data_sheet.getRange(1, 4).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow(); row++) {
    let email = data_sheet.getRange(row, email_column).getValue();
    //メール送信
    if(data_sheet.getRange(row,1).getValue()==false&&data_sheet.getRange(row,2).getValue()==false){
      let pw = data_sheet.getRange(row,pw_column).getValue();
      let userid = email;
      let title = mail_sheet.getRange(...mail_title_address).getValue()
      let strBody = mail_sheet.getRange(...mail_body_address_1).getValue()+"\n"+pw+"\n\n"
      console.log(email)
      console.log(title)
      console.log(strBody)
      writeLog(email + ": 送信開始")
      try{
        sendEmail(email,title,strBody);
        data_sheet.getRange(row,2).setValue(true);
        writeLog(email + ": 送信完了")
      }catch(e){
        writeLog(e);
        writeLog(email + ": 送信失敗")
      }   
    }else{
      writeLog(email + ": 実行済フラグでスキップ")
    }
  } 
}


    /* シートの全ての行について姓名を差し込みログに表示*/
function sendEmail(email,title,strBody){

  var strmailaddress=email;//mail
  let strSubject = "";
    strSubject =title; //メールタイトル

  

  /* メール表題、fromアドレス、差出人名を準備 */
  
  var strFrom=mail_sheet.getRange(...mailfrom_address).getValue(); //To
  //var bcc1 = sheet.getRange(...mailfrom_address).getValue();
  var strSender=email; //差出人

  //var report = DriveApp.getFileById("0B8JD3DtPwZbvQkVOQlR6anVKeUk"); //file単体になっている点に注意

  /* メールを送信 */
  
  let response = MailApp.sendEmail(
      strFrom, //Toアドレス
      strSubject,  //メールタイトル
      strBody,//本文
      {
          name: "情報システム部",//差出人
          bcc: strmailaddress
          //cc: cc1,
          //attachments: [report] //添付をファイル
      }
  );
}



function writeLog(message) {
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ログ");
  let date = Utilities.formatDate(new Date(), "Asia/Tokyo", "yyyy/MM/dd HH:mm:ss");
  let row = sheet.getLastRow() + 1;
  sheet.getRange(row, 1).setValue(date);
  sheet.getRange(row, 2).setValue(message);
}

併せて読む記事

(Visited 35 times, 1 visits today)