事業内容
- DX推進/IoT開発事業
- AI/ROBOTICS開発事業
Google Apps Script(GAS)を使えば、メールを効率的に運用できます。
例えば、複数の宛先にメールを送ることも、決まった時間にメールを配信することも可能です。
「メールの運用に追われていて、改善を図りたい」という方には、解決策のひとつになりえます。
今回は、GASを使ったメールの運用について、初歩的な実例を解説します。
GAS(Google Apps Script)とは、Googleが開発、提供しているプログラミング言語です。また、サーバーサイドスクリプト(WEB上で動くスクリプト)の環境とも言われています。
JavaScriptという言語を元に作られていて、C言語やGo言語などと比較しても学習は容易です。Excelでマクロ言語として使われるVBAという言語のGoogle版になります。
GASはGmailだけではなく、Googleが提供するGoogleドライブやGoogleスプレッドシート、Googleドキュメントなどのツール全般で使用することが可能です。
GASを使うと業務で使うメールの運用だけでなく、他のツールと提携した使い方もできます。現場の生産性を向上したいと考えている方は、ぜひ導入をご検討ください。
なお、GASの基本的な使い方について解説してある記事もありますので、GASがはじめてという方はこちらを参考にしてみてください。
GASを使えばメール業務の効率化ができるようになります。
例えば、以下のような工数が多くなりそうな作業を自動化することが可能です。
今回は、業務で使うことを想定して、GASを使った4つのメール機能を実装しました。
GASでメールを送信する方法
GASでメールの一括送信をする方法
GASで決まった時刻にメールを配信する方法
GASを使って添付ファイルを送信する方法
参考資料:GoogleAppsScript ガイド / GoogleAppsScript GmailApp
コードが打てるようになりました。
必要に応じて赤文字部分を変更してください。
function sendMail() {
const recipient = '●●●●●@xxxx.xxx'; //送信先のメールアドレス
const subject = '【テスト】メール送信テスト'; //件名
const recipientCompany = '株式会社ABC'; //送信先の会社名
const recipientName = '鈴木一郎'; //送信先の担当者名
const body = `${recipientCompany}\n${recipientName}様\n`
+ '\n**テストメールです**\n'; //本文
const options = { name: '株式会社ASTINA メール担当' }; //送信者の名前
GmailApp.sendEmail(recipient, subject, body, options);
}
パラメーターについて
GmailApp.sendEmail( ) の( )の中に入る部分を説明します。
recipient | 送信先のアドレス、または受信者のアドレス※テストで送る場合は自分のメールアドレスを入力してください。 |
subject | 件名(最大250文字) |
body | メールの本文 |
options | 様々なパラメータを指定するJavaScriptオブジェクト |
その他の用語
\n(半角) | 改行のこと |
+ | 文字列を結合させるために使う |
例:文字列の結合
'今日は'+'天気がいい' ⇒ 今日は天気がいい
optionsのプロパティ
optionsには以下のプロパティを入れることができます。
attachments | メールで送信するファイルの配列 |
cc | ccに含めるメールアドレス |
bcc | bccに含めるメールアドレス |
replyTo | 受信者の返信先となるメールアドレス |
noReply | 返信不可とするかどうかを決める。bool値を指定すること送信元のアドレスを「noreply@xxxx.xxx」とすることで、返信ができないようにする※このオプションはGoogleWorkspaceアカウントでのみ使用 |
name | 送信者の名前 |
bool値=項目の値を真(True)か偽(False)でとる値のこと
数学の真偽の問題に似ています。下記のように覚えると理解しやすいです。
⇒ True = Yes / False = No
例:返信不可の場合
const options = {noReply: true};
今回のように、名前以外にも複数のオプションを使用したい場合は、カンマ忘れに注意してください。
const options = {
cc:'abc@xxxx.xxx',
bcc:'def@xxx.xx',
name:'鈴木一郎',
noReply: true,
};
実行を押したあと、権限を要求されることがあります。
問題がなければ続行を押して先に進めてください。
メールが届きました。
毎朝行われる当番制の朝礼、曜日が決まっているゴミ出しなど、サイクルが決まっている業務は多いと思います。
イベントの前日にメールが自動で送信できたら良い、と感じたことはありませんか。
GASでは指定したサイクルでメールを配信する方法があります。
以上を設定したら保存します。
1分おきにメールが来ることがわかりました。
トリガーを削除したい場合
設定を削除したい場合は、トリガーの黒丸3つ部分をクリックし削除します。
一定のサイクルを指定して送りたい場合は、赤枠の部分を調整することで、より細かな日時の設定をすることができます。
参考資料:GoogleAppsScript ファイル / GoogleAppsScript ドライブ / GoogleAppsScript GmailApp
広告を使ったイベントの宣伝や、会議で使うプレゼン資料、毎月ある請求書の送付など、
資料をメールに添付し送付したい場合も、GASを使って業務の効率化を図ることができます。
今回はPDF資料の添付を想定して、説明していきます。
先程作成したコードに赤枠のコードを追加します。
function sendMail() {
const recipient = '●●●●●@xxxx.xxx'; //送信先のメールアドレス
const subject = '【テスト】メール送信テスト'; //件名
const recipientCompany = '株式会社ABC'; //送信先の会社名
const recipientName = '鈴木一郎'; //送信先の担当者名
const body = `${recipientCompany}\n${recipientName}様\n`
+ '\n**テストメールです**\n'; //本文
const attachfile = DriveApp.getFileById('▲▲▲▲▲').getBlob(); //ファイルのID
const options = { name: '株式会社ASTINA メール担当', attachments: attachfile };
//名前、ファイルの添付あり
GmailApp.sendEmail(recipient, subject, body, options);
}
送りたいファイルをドライブ内にドラッグアンドドロップをすると、自動でアップロードできます。
赤枠部分をクリックすると、リンクを選択することができます。
資料の赤字部分がファイルのIDとなります。
赤字部分をコピーします。
赤枠のエリアにファイルIDのコードを入力します。
※各ファイルによってIDは異なります。
function sendMail() {
const recipient = '●●●●●@xxxx.xxx'; //送信先のメールアドレス
const subject = '【テスト】メール送信テスト'; //件名
const recipientCompany = '株式会社ABC'; //送信先の会社名
const recipientName = '鈴木一郎'; //送信先の担当者名
const body = `${recipientCompany}\n${recipientName}様\n`
+ '\n**テストメールです**\n'; //本文
const attachfile = DriveApp.getFileById('ファイルID').getBlob(); //ファイルのID
const options = { name: '株式会社ASTINA メール担当', attachments: attachfile };
//名前、ファイルの添付あり
GmailApp.sendEmail(recipient, subject, body, options);
}
スクリプトを実行すると、権限を要求されることがありますが、問題がなければそのまま続行を押してください。
添付ファイルがついたメールが届きました。
参考資料:GoogleAppsScript ドキュメント / GoogleAppsScript スプレッドシート
宛先が複数ある場合、メールを送るのに毎回アドレスを入力するのはとても面倒です。
このような時間がかかる作業も、GASを使うと入力から送信までの作業を一括で行うことができます。
今回はGoogleスプレッドシートとGoogleドキュメントを使って、メールを一括送信します。
※Googleの無料版は、1日に100通までの送信制限がかかっていますのでご注意ください。
⇒詳しくはこちら
事前準備
Googleのスプレッドシートとドキュメントを準備します。
・スプレッドシート
名前を「メールテスト」で保存
1列目:会社名 / 2列目:姓 / 3列目:名 / 4列目:アドレス
・ドキュメント
送りたいメールの書式を準備し、スプレッドシートに記入した項目名を記入します。
赤枠の内容をそれぞれ { } 波カッコで書いてください。
この欄にスプレッドシートの各項目が入ります。
1.新しくスクリプトを作成
※事前に準備したスプレッドシートからスクリプトを作成してください。
別のファイルで作成した場合エラーが出ます。
2.コードを入力
エディタに下記のコードを貼り付けてください。
function mailMaga() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const doc = DocumentApp.openById('★★★★★'); //ドキュメントファイルのID
const docText = doc.getBody().getText();
const subject = '【テスト】メール送信テスト'; //件名
const attachfile = DriveApp.getFileById('ファイルID').getBlob(); //ファイルのID
const options = {name: '株式会社ASTINA メール担当', attachments: attachfile};
//名前、ファイルの添付あり
for (let i = 2; i <= lastRow; i++) { //i=2は行の数字を表す
const company = sheet.getRange(i, 1).getValue(); //送信先の会社名
const lastName = sheet.getRange(i, 2).getValue(); //姓
const firstName = sheet.getRange(i, 3).getValue(); //名
const recipient = sheet.getRange(i, 4).getValue(); //送信先のメールアドレス
const body = docText
.replace('{会社名}',company)
.replace('{姓}',lastName)
.replace('{名}',firstName);
GmailApp.sendEmail(recipient, subject, body, options);
}
}
3.ドキュメントのIDを取得
2.で準備したドキュメントのIDを★★★★★に入力します。
赤枠部分をクリックすると、リンクを選択することができます。
赤文字がドキュメントのIDとなります。
4.ドキュメントのIDを入力
ドキュメントのIDを★★★★★に入力してください。
function mailMaga() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const doc = DocumentApp.openById('ドキュメントファイルID'); //ドキュメントファイルのID
const docText = doc.getBody().getText();
const subject = '【テスト】メール送信テスト'; //件名
const attachfile = DriveApp.getFileById('ファイルID').getBlob(); //ファイルのID
const options = { name: '株式会社ASTINA メール担当', attachments: attachfile };
//自分の名前、ファイル添付あり
for (let i = 2; i <= lastRow; i++) { //i=2は行の数字を表す
const company = sheet.getRange(i, 1).getValue(); //送信先の会社名
const lastName = sheet.getRange(i, 2).getValue(); //姓
const firstName = sheet.getRange(i, 3).getValue(); //名
const recipient = sheet.getRange(i, 4).getValue(); //送信先アドレス
const body = docText
.replace('{会社名}', company)
.replace('{姓}', lastName)
.replace('{名}', firstName);
GmailApp.sendEmail(recipient, subject, body, options);
}
}
5.スクリプトを実行
実行すると権限を要求されることがありますが、問題がなければそのまま続行を押してください。
一括で送信することができました。
今回は「Google Apps Scriptをメールの運用に導入する方法」について解説しました。
このように、繰り返し行なう処理や量が多い処理を効率化できます。また、メール以外にもさまざまなツールと連携することが可能であるため、会社の業務全般に活かすことができるでしょう。