GmailApp.createDraftでGmail下書き自動作成!定期メール送信を効率化

GmailApp.createDraftでGmail下書き自動作成!定期メール送信を効率化

GmailApp.createDraftは、Google Apps Script(GAS)でGmailの下書きを自動作成する際に非常に便利な関数です。特に、定期的なメール送信や、ファイル操作と連携したメール作成といった自動化処理において、その威力を発揮します。この記事では、GmailApp.createDraftを活用して、日々の業務を効率化する方法を、具体的なコード例を交えながら解説します。

GmailApp.createDraftとは?

GmailApp.createDraft(recipient, subject, body)は、指定された宛先、件名、本文でGmailの下書きを作成するGASの関数です。作成された下書きは、Gmailの「下書き」フォルダに保存され、後で内容を確認・編集して送信することができます。

基本的な使い方

この関数は非常にシンプルで、以下の引数を取ります。

  • recipient: メールアドレス(文字列)。宛先を指定します。
  • subject: 件名(文字列)。メールの件名を指定します。
  • body: 本文(文字列)。メールの本文を指定します。

利用シチュエーション:自動化処理におけるGmailApp.createDraftの活用

GmailApp.createDraftは、以下のような自動化処理で特に役立ちます。

  • 定期的なメール送信: 定期的に同じ内容のメールを送る必要がある場合、テンプレートを作成し、GASで自動的に下書きを作成できます。
  • ファイル操作と連携したメール作成: スプレッドシートのデータを読み込み、その内容に基づいてメールを作成したり、Googleドライブのファイルを添付したメールの下書きを自動で作成できます。

実装例:定期的なメール送信の自動化

ここでは、毎週月曜日の朝9時に、指定された宛先にリマインダーメールの下書きを自動作成する例を紹介します。

// 毎週月曜日の朝9時にリマインダーメールの下書きを作成する関数
function createWeeklyReminderDraft() {
// 宛先メールアドレス
const recipient = "example@example.com";
// 件名
const subject = "【リマインダー】週次レポートの提出";
// 本文
const body = "今週の週次レポートの提出をお願いします。締め切りは金曜日です。";

// 下書きを作成
GmailApp.createDraft(recipient, subject, body);
Logger.log("下書きを作成しました。");
}

このコードをGASのエディタに貼り付け、トリガーを設定することで、毎週月曜日の朝9時に自動的に下書きが作成されます。

トリガーの設定方法

  1. GASエディタの左側にある時計アイコンをクリックします。
  2. 「トリガーを追加」をクリックします。
  3. 「実行する関数を選択」でcreateWeeklyReminderDraftを選択します。
  4. 「イベントソースを選択」で「時間主導型」を選択します。
  5. 「時間主導型トリガーのタイプを選択」で「曜日ベースのタイマー」を選択します。
  6. 「曜日を選択」で「月曜日」を選択します。
  7. 「時間を選択」で「9時~10時」を選択します。
  8. 「保存」をクリックします。

実装例:スプレッドシートのデータに基づいたメール作成

スプレッドシートに顧客リストがあり、そのデータに基づいて個別のメールを作成する場合の例です。

// スプレッドシートの顧客データに基づいてメールの下書きを作成する関数
function createDraftsFromSpreadsheet() {
// スプレッドシートのID
const spreadsheetId = "YOUR_SPREADSHEET_ID";
// シート名
const sheetName = "顧客リスト";

// スプレッドシートを開く
const ss = SpreadsheetApp.openById(spreadsheetId);
// シートを取得
const sheet = ss.getSheetByName(sheetName);

// データの範囲を取得(2行目から最終行まで)
const dataRange = sheet.getDataRange();
const lastRow = dataRange.getLastRow();
const data = dataRange.getValues().slice(1); // 1行目はヘッダーのため除く

// 顧客データに基づいてメールの下書きを作成
data.forEach(row => {
const email = row[0]; // メールアドレスは1列目にあると仮定
const name = row[1]; // 名前は2列目にあると仮定
const subject = "【重要】〇〇に関するお知らせ";
const body = `${name}様\n\nいつもお世話になっております。\n\n〇〇の件について、ご連絡いたしました。`;

GmailApp.createDraft(email, subject, body);
Logger.log(`下書きを作成しました: ${email}`);
});
}

注意:YOUR_SPREADSHEET_IDは、実際に使用するスプレッドシートのIDに置き換えてください。スプレッドシートIDは、スプレッドシートのURLから確認できます。

よくある問題とトラブルシューティング

  • 下書きが作成されない: スクリプトの実行権限が不足している可能性があります。GASのプロジェクト設定で、Gmail APIへのアクセス権を許可してください。
  • 文字化けが発生する: 文字コードの問題である可能性があります。メールの本文をUTF-8でエンコードしてみてください。
  • 大量のメール送信でエラーが発生する: Gmailの送信制限に引っかかっている可能性があります。送信数を制限したり、時間を置いて再試行してください。

カスタマイズ方法と応用例

  • 添付ファイルの追加: GmailApp.createDraftでは添付ファイルの追加はできません。MailApp.createMessageを使用し、GmailApp.sendEmailの代わりにGmailApp.insertDraftで下書きを作成します。
  • HTML形式のメール: 本文をHTML形式で記述することで、よりリッチな表現のメールを作成できます。
  • エラーハンドリング: try...catch構文を使用して、エラーが発生した場合の処理を記述することで、より安定したスクリプトを作成できます。

まとめ

GmailApp.createDraftは、GASを活用したGmailの自動化処理において、非常に強力なツールです。定期的なメール送信、ファイル操作との連携など、様々なシチュエーションで活用できます。この記事で紹介したコード例やトラブルシューティングを参考に、ぜひGmailApp.createDraftを業務に導入し、効率化を図ってください。

PR

未経験からSNSデザインを学び、在宅ワークで収入を得たい方へ。
Flap DESIGNは、デザインスキルから案件獲得までを徹底サポートするオンラインスクールです。現役プロがマンツーマンで指導するため、挫折しにくい環境が強み。
さらに、受講期間中に案件を獲得できなかった場合は、売上が立つまで営業サポート期間を延長する「売上保証制度」も魅力です。
副業として月8〜20万円を目指したい会社員の方、出産・育児を機に新しい働き方を求める方、フリーランスとして独立を目指す方など、ライフスタイルに合わせた働き方を実現したい方にぴったりのサービスです。まずは無料相談で詳細を聞いてみませんか?

未経験から始める!SNSデザインスクール