【GAS】GmailApp.sendEmailの使い方
この記事では、Google Apps Script(GAS)を使用してGmailを介してメールを送信する方法について、GmailApp.sendEmailメソッドの使用法に焦点を当てて使い方をご紹介します。
毎日何通も送るメールの自動化で業務効率化をしてみましょう。
GmailApp.sendEmailのサンプルコード
以下のサンプルは、基本的なメール送信のスクリプトです。送信者のGmailアカウントから、特定の宛先に対して件名と本文を指定してメールを送信します。
function sendBasicEmail() {
// メールの宛先
var recipient = "recipient@example.com";
// メールの件名
var subject = "GASを使用したメール送信のテスト";
// メールの本文
var body = "これはGoogle Apps Scriptを使用して送信されたテストメールです。";
// メール送信の実行
GmailApp.sendEmail(recipient, subject, body);
}
sendEmailメソッドの基本形
GmailApp.sendEmailメソッドは、Gmailを通じてメールを送信するための基本的なメソッドです。このメソッドは、最低限、宛先のメールアドレス、件名、メール本文を引数に取ります。
GmailApp.sendEmail(recipient, subject, body)
・recipient:送信先のメールアドレス
・subject(オプション):メールの件名
・body(オプション):メールの本文
メール送信のオプション
添付ファイルの送信
メールに添付ファイルを加えたい場合は、attachmentsオプションを使用します。以下の例では、Googleドライブからファイルを取得し添付しています。
function sendEmailWithAttachment() {
var recipient = "recipient@example.com";
var subject = "添付ファイル付きのメール";
var body = "このメールには添付ファイルが含まれています。";
// 添付ファイルの取得
var file = DriveApp.getFileById('ファイルのID');
var blob = file.getBlob();
// メール送信の実行
GmailApp.sendEmail(recipient, subject, body, {
attachments: [blob]
});
}
実用的なメール送信スクリプト例
より実践的な使用例を2つご紹介します。
①顧客別のメールを一括で送信する
特定の条件を満たすメールを一括で送信することが可能です。ここでは、顧客リストがスプレッドシートに保管されており、それぞれの顧客に対してカスタマイズされたメールを送信する例を考えてみます。
必要なスプレッドシートの準備
下記の列が含まれるスプレッドシートを用意します。
- 顧客名
- メールアドレス
- メッセージ
サンプルコード
スプレッドシートに記載されている顧客情報を元にメールを一括送信するスクリプトです。
function sendCustomEmails() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('顧客リスト');
var startRow = 2; // ヘッダー行を考慮して、データの開始行を指定
var numRows = sheet.getLastRow() - 1; // データ行数を計算
var dataRange = sheet.getRange(startRow, 1, numRows, 3); // 名前、メールアドレス、メッセージが含まれる列を指定
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var name = row[0]; // 顧客の名前
var emailAddress = row[1]; // 顧客のメールアドレス
var message = row[2]; // カスタマイズされたメッセージ
var subject = 'お客様への特別なお知らせ'; // メールの件名を設定
// メール本文に顧客名を含めたカスタマイズされたメッセージを作成
var emailBody = 'こんにちは、' + name + '様\n\n' + message + '\n\nよろしくお願いします。';
// メールを送信
GmailApp.sendEmail(emailAddress, subject, emailBody);
}
}
②プロジェクトの進捗をメールで送信する
スプレッドシートに記載されたプロジェクトの進捗状況をチェックし、完了したプロジェクトの情報をメールで報告します。定期的にこのスクリプトを実行することで、プロジェクト管理の自動化を図ることができます。
必要なスプレッドシートの準備
下記の列が含まれるスプレッドシートを用意します。
- プロジェクト名
- 責任者
- 進捗状況
サンプルコード
スプレッドシートから完了したプロジェクトの情報を抽出し、指定されたメールアドレスにその情報を送信します。
function sendCompletedProjectsReport() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
var completedProjects = [];
for (var i = 1; i < values.length; i++) {
if (values[i][2] === "完了") { // 進捗状況が「完了」のプロジェクトを抽出
completedProjects.push(values[i]);
}
}
if (completedProjects.length > 0) {
var messageBody = '以下のプロジェクトが完了しました:\n\n';
for (var j = 0; j < completedProjects.length; j++) {
messageBody += completedProjects[j].join(' / ') + '\n';
}
var subject = 'プロジェクト完了報告';
var recipient = 'your_email@example.com'; // 宛先メールアドレスを設定
GmailApp.sendEmail(recipient, subject, messageBody);
}
}
まとめ
GmailApp.sendEmailメソッドを使用することで、GASを通じて効率的にメール送信を自動化することが可能です。この記事では、GmailApp.sendEmailの基本的な使い方から、実践で使える参考処理方法をご紹介しました。
GASのGmail関連の記事も参考にしてみてください。