GASでメール送信する方法【Googelスプレッドシート】

GAS(Google Apps Script)を使って、スプレッドシートからメールを送信する方法をご紹介します。複数のアドレスにメールを一括送信する方法や、本文内の宛名をシート一覧から反映させる方法についても解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

GASでメールを送信する方法

GASでメールを送信する方法【スプレッドシート】

スプレッドシートを開き、拡張機能タブから[App Script]をクリックします。

GASでメールを送信する方法【スプレッドシート】

スクリプトエディタに以下のコードを入力し、[プロジェクトを保存]をクリックします。

メールを送信するメソッドは、sendEmail(recipient, subject, body) です。recipient に受取人のアドレスを、subject に件名を、body に本文を入力します。

function sendGmail() {
  GmailApp.sendEmail('受取人のメールアドレス','TEST','Hello!');
}
GASでメールを送信する方法【スプレッドシート】

[実行]をクリックすると、メールが送信されます。

初めて実行する場合は承認が求められるので、[権限を確認]をクリックしてください。

GASでメールを送信する方法【スプレッドシート】

ご自身のアカウントを選択し、[詳細]に進みます。

GASでメールを送信する方法【スプレッドシート】

左下の[(安全ではないページ)に移動]を選択し、[許可]をクリックします。

GASでメールを送信する方法【スプレッドシート】

スクリプトの実行ログが出力されました。

Gmailを確認してみると、指定した件名(TEST)と本文(Hello!)のメールが届いています。

スポンサーリンク

GASでメールを一括送信する方法

GASでメールを一括送信する方法【スプレッドシート】

シートに記載されているアドレス一覧に、メールを一括で送信します。

特定のシートを取得するメソッドは、getSheetByName(name)です。name には取得したいシートの名前を入力してください。

GASでメールを一括送信する方法【スプレッドシート】

アドレスをシートから順番に取得するコードは、以下の通りです。

for文は繰り返し処理に使用します。for(let i = 2; i <= lastRow; i++) は 2 を初期値とし、最終行まで初期値に 1 を加算しながら処理を実行します。

例の場合 3 列目の2 行目から値を取得し、sendEmailの型に当てはめてメールを送信するところまでの処理を、最終行まで繰り返します。

function sendGmail() {
 const ss = SpreadsheetApp.getActiveSpreadsheet(); 
 const sheet = ss.getSheetByName('メール送信システム'); 
 const lastRow = sheet.getLastRow(); 

 const subject = '年末年始休業のお知らせ'; 
 const body = '年内最終営業日は2023年12月28日までです。';

  for(let i = 2; i <= lastRow; i++){
    const recipient = sheet.getRange(i,3).getValue();
 
  GmailApp.sendEmail(recipient, subject, body);
  }
}
GASでメールを一括送信する方法【スプレッドシート】

const は後ろに宣言する定数名に、書き換えできないデータを代入しています。

つまり const subject、const body、の部分は、sendEmailメソッドに直接入力しても結果は同じです。コードが分かりやすくなるように、変数として定義しています。

スポンサーリンク

会社名・宛名を変えて一括送信する方法

GASでメールを一括送信する方法【スプレッドシート】

本文の会社名と担当者名をシートから取得して、アドレス一覧にメールを一括送信します。

この場合メール本文となる body は、シートから取得したデータを連結して作成します。

GASでメールを一括送信する方法【スプレッドシート】

アドレスと同じように会社名と名前をシートから順番に取得し、本文テキストと連結します。今回はテキストを直接入力していますが、シートから取得するようにしてもOKです。

プレースホルダー ${} を使うと、+ を使わずに文字列と変数を連結できます。

function sendGmail() {
 const ss = SpreadsheetApp.getActiveSpreadsheet(); 
 const sheet = ss.getSheetByName('メール送信システム');
 const lastRow = sheet.getLastRow(); 
 const subject = '年末年始休業のお知らせ';

  for(let i = 2; i <= lastRow; i++){ 
    const recipient = sheet.getRange(i,3).getValue();
    
    const company = sheet.getRange(i,1).getValue(); 
    const name = sheet.getRange(i,2).getValue(); 
    const text ='年内最終営業日は2023年12月28日までです。'; 

    const body = `${company}\n${name}\n\n${text}`;
 
  GmailApp.sendEmail(recipient, subject, body);
  }
}
GASでメールを一括送信する方法【スプレッドシート】

スクリプトを実行すると、別々の宛名に一括でメール送信ができました。

スポンサーリンク

送信者名を設定する方法

GASでメールを一括送信する方法【スプレッドシート】

メールの送信者の名前を設定します。

GASのメールの送信者名を設定する方法

sendEmail(recipient, subject, body, options)メソッドの options に、拡張パラメータ name を指定します。記入例:{name:’送信者名’}

なおデフォルトの送信者名は、ユーザーの名前です。

function sendGmail() {
 const ss = SpreadsheetApp.getActiveSpreadsheet(); 
 const sheet = ss.getSheetByName('メール送信システム'); 
 const lastRow = sheet.getLastRow(); 

 const recipient = 'メールアドレス';
 const subject = '年末年始休業のお知らせ'; 
 const body = '年内最終営業日は2023年12月28日までです。';
 const options = {name: 'ポニカン'}; 

  GmailApp.sendEmail(recipient, subject, body, options);
}
スポンサーリンク

BCCとCCを設定する方法

GASでメールのCCとBCCを設定する方法

他の人に宛先が表示されないように一括送信するBCCや、共有相手を追加するCCを設定します。

GASでメールのCCとBCCを設定する方法

sendEmail(recipient, subject, body, options)メソッドの options に、拡張パラメータ bcc を指定します。CCの場合の拡張パラメータは、cc です。

複数のアドレスを指定する場合は、カンマで区切りながら入力します。例:{bcc:’アドレス1,アドレス2,アドレス3′}

const options = {bcc: 'メールアドレス'}; 
タイトルとURLをコピーしました