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

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

スクリプトエディタに以下のコードを入力し、[プロジェクトを保存]をクリックします。
メールを送信するメソッドは、sendEmail(recipient, subject, body) です。recipient に受取人のアドレスを、subject に件名を、body に本文を入力します。
function sendGmail() { GmailApp.sendEmail('受取人のメールアドレス','TEST','Hello!'); }

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

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

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

スクリプトの実行ログが出力されました。
Gmailを確認してみると、指定した件名(TEST)と本文(Hello!)のメールが届いています。
GASでメールを一括送信する方法

シートに記載されているアドレス一覧に、メールを一括で送信します。
特定のシートを取得するメソッドは、getSheetByName(name)です。name には取得したいシートの名前を入力してください。

アドレスをシートから順番に取得するコードは、以下の通りです。
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); } }

const は後ろに宣言する定数名に、書き換えできないデータを代入しています。
つまり const subject、const body、の部分は、sendEmailメソッドに直接入力しても結果は同じです。コードが分かりやすくなるように、変数として定義しています。
会社名・宛名を変えて一括送信する方法

本文の会社名と担当者名をシートから取得して、アドレス一覧にメールを一括送信します。
この場合メール本文となる body は、シートから取得したデータを連結して作成します。

アドレスと同じように会社名と名前をシートから順番に取得し、本文テキストと連結します。今回はテキストを直接入力していますが、シートから取得するようにしても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); } }

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

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

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を設定する方法

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

sendEmail(recipient, subject, body, options)メソッドの options に、拡張パラメータ bcc を指定します。CCの場合の拡張パラメータは、cc です。
複数のアドレスを指定する場合は、カンマで区切りながら入力します。例:{bcc:’アドレス1,アドレス2,アドレス3′}
const options = {bcc: 'メールアドレス'};