GASで簡単!自動返信メールを設定する方法
メールの自動返信を設定したいんですけど、GASを使って簡単にできたりしますか?

猫男

catman
もちろんだ。GASを用いれば、初心者でも自動返信メールを設定できるようになるさ。catmanがその方法を教えてあげよう。
GASでメールの自動返信を設定する基本
GAS(Google Apps Script)では、Gmailサービスを使ってメール操作が可能だ。自動返信メールもその一つさ。
GASでメールを取得する方法
まず、メールを取得する方法を確認しよう。GmailAppサービスを使えば、メールを簡単に取得できる。
function getEmails() {
var threads = GmailApp.search('is:unread');
var firstThread = threads[0].getMessages();
Logger.log(firstThread[0].getSubject());
}
このスクリプトは、未読メールのスレッドをすべて検索し、その件名をログに出力する。
GmailApp.search() は条件に一致するスレッドを検索するのに使う。
getMessages() でスレッド内のメッセージを取得できる。
GASでメールの自動返信を設定する方法
以上を踏まえて、自動返信のサンプルコードを紹介しよう。
function autoReply() {
var threads = GmailApp.search('is:unread');
for (var i = 0; i < threads.length; i++) {
var message = threads[i].getMessages()[0];
var email = message.getFrom();
var subject = "Re: " + message.getSubject();
var body = "こんにちは、メールありがとうございます。";
GmailApp.sendEmail(email, subject, body);
threads[i].markRead();
}
}
GmailApp.sendEmail() で返信メールを送信している。
markRead() 打つことで、そのスレッドを既読にすることができる。
GASでGoogleフォームからのメール通知を自動返信する方法
質問に回答があった際に自動で返信メールを送る場合もある。そこでGoogleフォームとGASを利用する方法も紹介しよう。
一例として、フォームから取得したメールアドレスに返信メールを送る場合は、以下の通りだ。
function sendReplyFromForm(e) {
var email = e.namedValues['Email Address'][0];
var subject = "Googleフォームへのご回答ありがとうございました";
var body = "ご回答をありがとうございます!確認させていただきます。";
GmailApp.sendEmail(email, subject, body);
}
このスクリプトは、フォームの回答に基づいてメールアドレスにお礼の返信を送信するさ。
e.namedValues にはGoogleフォームの回答が格納されている。
練習問題
GASを使って、「特定の件名を含む未読メール」に自動返信を送るスクリプトを作成せよ。
解答・解説
function autoReplySpecificSubject() {
var threads = GmailApp.search('subject:特定件名 is:unread');
for (var i = 0; i < threads.length; i++) {
var message = threads[i].getMessages()[0];
var email = message.getFrom();
var subject = "Re: " + message.getSubject();
var body = "このメールに自動返信しています。";
GmailApp.sendEmail(email, subject, body);
threads[i].markRead();
}
}
GmailApp.search(‘subject:特定件名 is:unread’)で、特定の件名を含む未読メッセージを検索している。
getFrom() でメールを送信してきた相手のアドレスを取得している。
markRead() により、送信後にそのスレッドを既読にしている。