GAS初心者必見!メール下書きを一括作成する方法と手順

メールの下書きを一括で作成する方法って何かあるのかな…?上司に沢山の下書きの準備を頼まれたけど、手動でやるのはちょっと大変そうで…
猫男
猫男
catman
catman
心配するな、catmanが効率的にメール下書きを一括作成するGASの使い方を教えてやるさ。準備はいいか?

メール下書きを一括作成するための基本

GAS(Google Apps Script)を使えば、メール下書きの一括作成が簡単に行える。ここでは、Gmailの下書きをGASで作成する方法を学んでいこう。

GASでGmailのドラフトを作成する手順

まずは、Gmailのドラフトを作成するための基本的なスクリプトを確認しよう。

 function createDrafts() {
 const emailData = [
 {to: "example1@example.com", subject: "こんにちは1", body: "メールの内容1"},
 {to: "example2@example.com", subject: "こんにちは2", body: "メールの内容2"},
 ];
 emailData.forEach(data => {
 GmailApp.createDraft(data.to, data.subject, data.body);
 });
 } 

このスクリプトでは、メールアドレス、件名、内容が含まれたオブジェクトの配列を使って、複数のメール下書きを作成している。

メールデータをスプレッドシートから読み込む

スプレッドシートからデータを読み込んで、さらに効率化を図ることもできる。この方法で、メールの内容を簡単に変更できるようになる。

 function createDraftsFromSheet() {
 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("メールデータ");
 const data = sheet.getDataRange().getValues();
 data.slice(1).forEach(row => {
 GmailApp.createDraft(row[0], row[1], row[2]);
 });
 } 

スプレッドシートのシート名を「メールデータ」に設定し、上から順番に「メールアドレス」「件名」「本文」を記入する構成にしておくとよい。

スプレッドシートからデータが使えるなんて便利だ!想像以上だなぁ。でも、スクリプトのどの部分が重要なのか、いまいちわからないかも…
猫男
猫男
catman
catman
ふむ。それぞれのGASメソッドをもう少し詳しく見ていこう。分かりやすく解説するから、安心してくれ。

GASで使われている主なメソッドの解説

GmailApp.createDraft()

メールの下書きを作成するために使用する。パラメータには送信先のメールアドレス、件名、本文が必要だ。

SpreadsheetApp.getActiveSpreadsheet()

現在アクティブになっているスプレッドシートを取得する。指定したシートからデータを読み込むのに便利だ。

SpreadsheetApp.getSheetByName()

スプレッドシートの中から特定のシートを名前で取得する。データをどのシートから取得するかを明確にするために使われる。

getDataRange().getValues()

シートの全データを2次元配列として取得する。データは行ごとに配列の要素として収納される。

なるほど!ひとつひとつの役割がハッキリしたから、スクリプトの意味がより分かるようになってきたよ!
猫男
猫男

練習問題:GASでのメール下書き作成に挑戦

スプレッドシートに記載されている以下のデータを使用して、メールの下書きを一括作成してみよう。

  1. メールアドレス:user1@example.com
  2. 件名:テストメール1
  3. 本文:これはテストメールの内容です。
  4. メールアドレス:user2@example.com
  5. 件名:テストメール2
  6. 本文:こちらもテストメールです。

解答・解説

 function practiceCreateDrafts() {
 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("メールデータ");
 const data = sheet.getDataRange().getValues();
 data.slice(1).forEach(row => {
 GmailApp.createDraft(row[0], row[1], row[2]);
 });
 } 

このスクリプトは、スプレッドシートからメールデータを読み込み、各行の情報を使ってメール下書きを作成する。最初の行はヘッダーと想定し、2行目以降のデータに対して処理を行う。

catman
catman
これでメールの下書き作成もバッチリだ。GASを使って、どんどん便利な自動化をしていこう。
ありがとう、catman!これで上司に任されたタスクもスムーズに片付きそうだ!
猫男
猫男