Google Apps Scriptでメールの自動送信を設定する

Google Apps Script(GAS)を使うことで、Googleクラウドアプリケーションを活用してメールの自動送信を簡単に設定できます。この記事では、GASを使ってメールの自動送信を設定する方法を、初心者向けに詳しく解説します。

 

Google Apps Scriptとは?

Google Apps Script(GAS)は、JavaScriptベースのスクリプト言語で、Googleのサービス(Google Sheets、Google Forms、Gmailなど)をカスタマイズし、自動化するためのツールです。GASを使うことで、繰り返し行う作業や複雑な処理を自動化することができます。

スクリプトエディタの起動方法

まずは、Google Apps Scriptのスクリプトエディタを起動しましょう。

  1. Google Driveを開く:自動送信したいメールの関連ファイルを管理しているGoogle Driveを開きます。
  2. スクリプトエディタを起動:左上の「新規作成」ボタンから「その他」→「Google Apps Script」を選択します。

メールの自動送信の基本的な設定

以下のスクリプトは、Google Apps Scriptを使って基本的なメールを自動送信する方法を示しています。

function sendEmail() {
var recipient = 'example@example.com'; // 受信者のメールアドレス
var subject = '自動送信メールのテスト'; // メールの件名
var body = 'こんにちは、これは自動送信メールのテストです。'; // メールの本文

MailApp.sendEmail(recipient, subject, body);
}

このスクリプトでは、指定したメールアドレスに対して、件名と本文が設定されたメールが送信されます。

  1. スクリプトを保存スクリプトエディタの名前を設定し、保存します。
  2. スクリプトを実行ツールバーの「実行」ボタンをクリックしてスクリプトを実行します。初回実行時には認証が必要です。

スクリプトを定期的に実行する設定

メールを定期的に自動送信するには、トリガーを設定します。以下の手順で設定します。

  1. トリガーの設定
    • スクリプトエディタの左側メニューから「時計」アイコン(「トリガー」)をクリックします。
    • 「トリガーを追加」ボタンをクリックします。
    • 「関数を選択」でsendEmail関数を選び、「イベントの種類を選択」で「時間主導型」を選びます。
    • 送信の頻度(毎日、毎週、毎月など)を設定し、「保存」をクリックします。

これで、指定した頻度で自動的にメールが送信されるようになります。

条件に応じたメールの自動送信

メールの自動送信は条件に応じて設定することも可能です。以下のスクリプトは、Google Sheetsのデータに基づいて条件に合致する場合にのみメールを送信します。

function sendConditionalEmail() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();

for (var i = 1; i < data.length; i++) {
var email = data[i][0]; // メールアドレスが1列目にあると仮定
var condition = data[i][1]; // 条件が2列目にあると仮定
if (condition === '条件を満たす') {
var subject = '条件に合致しました';
var body = 'こんにちは、条件が満たされました。';
MailApp.sendEmail(email, subject, body);
}
}
}

このスクリプトは、Google Sheetsのデータを読み取り、2列目の値が特定の条件に合致する場合に、1列目のメールアドレスにメールを送信します。

Googleフォームからのメール自動送信

Googleフォームの回答に応じてメールを自動送信するスクリプトもあります。以下は、フォームの回答を受けて自動的に確認メールを送信する例です。

function onFormSubmit(e) {
var responses = e.namedValues;
var email = responses['メールアドレス'][0];
var name = responses['名前'][0];
var message = 'こんにちは ' + name + 'さん、\n\nお問合せありがとうございます。内容を確認し次第、ご連絡いたします。';

MailApp.sendEmail(email, 'お問合せありがとうございます', message);
}

このスクリプトは、フォームの回答が送信されると、回答者のメールアドレスに自動で確認メールを送信します。

メールテンプレートの使用

メールの内容をテンプレート化して動的に変更することも可能です。以下のスクリプトは、メールテンプレートを使用してメールを送信する例です。

function sendEmailWithTemplate() {
var recipient = 'example@example.com';
var subject = '自動送信メールのテスト';
var template = HtmlService.createTemplateFromFile('メールテンプレート');
template.name = '山田太郎';
var body = template.evaluate().getContent();

MailApp.sendEmail({
to: recipient,
subject: subject,
htmlBody: body
});
}

ここで、メールテンプレート.htmlというファイルをプロジェクトに追加し、以下のような内容を書きます。

<!DOCTYPE html>
<html>
<body>
<p>こんにちは <?= name ?> さん、</p>
<p>これは自動送信メールのテストです。</p>
</body>
</html>

Google Sheetsからメールの自動送信

Google Sheetsの内容をもとにメールを送信するスクリプトも役立ちます。以下のスクリプトは、スプレッドシートのデータを使ってメールを送信します。

function sendEmailFromSheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('A2:C10'); // データがA2からC10の範囲にあると仮定
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
var email = values[i][0];
var subject = values[i][1];
var body = values[i][2];
MailApp.sendEmail(email, subject, body);
}
}

このスクリプトは、スプレッドシートの指定範囲からデータを取得し、それぞれの行の内容でメールを送信します。

まとめ

Google Apps Scriptを使用することで、Googleのサービスをカスタマイズし、自動化することができます。メールの自動送信を設定することで、定期的な通知、条件に応じたメールの送信、フォームの回答に対する自動返信など、さまざまな作業を効率化できます。スクリプトエディタで基本的なスクリプトを作成し、トリガーや条件付きロジックを使ってさらに複雑な処理を実現しましょう。

参考リンク

このガイドを参考にして、自分の業務に役立つスクリプトを作成し、より効率的な業務運営を目指しましょう。