【GAS】自動メール【スプレッドシート】サンプルあり

img_28325223335 Google Apps Script

請求書をPDF化し、客先別に下書きメールを作成する方法を紹介します。

自動メール

サンプルをダウンロードしてください。

PDF化とメールの下書き

請求書の作成

img_28325223422

シート「請求書」を作成し、詳細を記入します。

GASの記入

img_28325223435

コピペでOKです。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('請求書処理')
    .addItem('請求書PDF作成&メール送信', 'createInvoicePdfAndSendEmail')
    .addToUi();
}

function createInvoicePdfAndSendEmail() {
  // ①PDFに変換
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('請求書'); // シート「請求書」を指定
  var sheetId = sheet.getSheetId();
  var url = ss.getUrl().replace(/edit$/, '');
  var url_ext = 'export?exportFormat=pdf&format=pdf' +
      '&gid=' + sheetId;
  var options = {
    headers: {
      'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
    }
  };
  var response = UrlFetchApp.fetch(url + url_ext, options);
  var blob = response.getBlob().setName(sheet.getName() + '.pdf');
  var pdfFile = DriveApp.createFile(blob); // PDFファイルをDriveに作成

  // ②シート「請求書」から会社名と年月日を取得
  var companyName = sheet.getRange('A3').getValue();
  var invoiceDate = sheet.getRange('A5').getValue();

  // ③会社名とシート「担当者情報」を比較し、担当者名とメールアドレスを取得
  var contactSheet = ss.getSheetByName('担当者情報');
  var contactData = contactSheet.getRange('A2:C' + contactSheet.getLastRow()).getValues();
  var recipientEmail = '';
  var recipientName = '';

  for (var i = 0; i < contactData.length; i++) {
    if (contactData[i][0] === companyName) {
      recipientName = contactData[i][1];
      recipientEmail = contactData[i][2];
      break; // 一致したらループを抜ける
    }
  }

  // ④メールの下書きを作成
  if (recipientEmail) {
    var subject = '請求書';
    var body = recipientName + '様\n\nお世話になっております。\n請求書を送付します。\nご確認よろしくお願いします。';

    // メールを下書きとして作成(送信はしない)
    GmailApp.createDraft(recipientEmail, subject, body, {
      attachments: [pdfFile.getAs(MimeType.PDF)] // PDFファイルを添付
    });
    SpreadsheetApp.getUi().alert('メールの下書きを作成しました。');
  } else {
    SpreadsheetApp.getUi().alert('担当者のメールアドレスが見つかりませんでした。');
  }
}

これで準備は完了です。

メールの自動作成

img_28325223448

請求書処理▶請求書PDF作成&メール送信を選択

img_2832522352

処理が正常に完了しました。

img_28325223520

Gmailに移動すると、下書きが作成されています。

img_28325223527

宛先、件名、本文、添付ファイルを確認します。

会社別宛先の指定

img_2832522421

シート「担当者情報」を参照してメールを作成します。

シート「請求書」の会社名をB株式会社で作成するとBさんのメールアドレス、C株式会社で作成するとCさんのメールアドレスに自動で変わります。

サンプルをダウンロードし、動作を確認してください。

PDF化とメールの下書き
タイトルとURLをコピーしました