【GAS】Gmailにローカルファイルを添付して送信する方法

GASGmailApp,sendEmail

Google Apps Script(GAS)を使えば、ローカル環境に保存されたファイルをGmailに添付して送信することができます。この記事では、GASを使ったローカルファイルの添付方法を解説し、具体例や注意点を紹介します。

Gmailにローカルファイルを添付する方法

GASを使用してローカルファイルを添付する場合、次の手順が必要です。

  1. ローカルファイルをGoogleドライブにアップロードする
  2. Googleドライブからファイルを取得し、添付する
    GASは直接ローカルファイルにアクセスすることはできないため、Googleドライブを中継として使用します。

基本構文

GmailApp.sendEmail(to, subject, body, {
  attachments: [DriveApp.getFileById(fileId).getAs(MimeType.PDF)]
});
引数説明
to宛先メールアドレス
subjectメールの件名
bodyメール本文
attachments添付ファイル(Blobオブジェクト)

具体例1: 単一ファイルを添付してメールを送信

以下のコードは、Googleドライブ内に保存されているファイルを添付してメールを送信する例です。

function sendEmailWithAttachment() {
  const recipient = "example@gmail.com"; // 宛先
  const subject = "添付ファイル付きメール"; // 件名
  const body = "以下のファイルをご確認ください。"; // 本文

  // Googleドライブ内のファイルIDを指定
  const fileId = "your-file-id"; // ファイルIDを指定
  const file = DriveApp.getFileById(fileId).getAs(MimeType.PDF); // ファイルを取得

  // メール送信
  GmailApp.sendEmail(recipient, subject, body, {
    attachments: [file]
  });
}

ポイント: DriveApp.getFileById(fileId).getAs(MimeType.PDF)でファイルを指定の形式に変換できます。

具体例2: スプレッドシートをPDF形式で添付

以下は、スプレッドシートをPDF形式に変換して添付するスクリプト例です。

function sendSpreadsheetAsPDF() {
  const recipient = "example@gmail.com"; // 宛先
  const subject = "スプレッドシートをPDFで送信"; // 件名
  const body = "スプレッドシートをPDF形式で添付しました。"; // 本文

  // 対象のスプレッドシートを取得
  const sheet = SpreadsheetApp.getActiveSpreadsheet();
  const pdfBlob = sheet.getBlob().setName(sheet.getName() + ".pdf"); // PDFに変換

  // メール送信
  GmailApp.sendEmail(recipient, subject, body, {
    attachments: [pdfBlob]
  });
}

具体例3: 複数ファイルを添付

以下は、複数のGoogleドライブ内のファイルを添付して送信する例です。

function sendEmailWithMultipleAttachments() {
  const recipient = "example@gmail.com"; // 宛先
  const subject = "複数ファイル付きメール"; // 件名
  const body = "複数のファイルを添付しました。"; // 本文

  // 添付ファイルリストを作成
  const fileIds = ["file-id-1", "file-id-2"]; // ファイルIDをリスト化
  const attachments = fileIds.map(id => DriveApp.getFileById(id).getBlob()); // 各ファイルをBlobとして取得

  // メール送信
  GmailApp.sendEmail(recipient, subject, body, {
    attachments: attachments
  });
}

注意点

Googleドライブのファイルアクセス権限
メールを受信する相手が添付ファイルを開けるよう、ファイルの共有設定を確認してください。
必要に応じて、Googleドライブで「リンクを知っている人が閲覧可能」に設定します。

Gmailの添付ファイル制限
添付ファイルの合計サイズが25MBを超える場合、メール送信に失敗します。
大容量ファイルはGoogleドライブの共有リンクを使う方法を検討してください。

GASのリクエスト制限
GmailAppで送信できるメール数は1日100通(無料アカウント)に制限されています。

まとめ

この記事では、GASを使ったGmailへのローカルファイルの添付方法を解説しました。
Googleドライブを中継としてローカルファイルを添付
単一ファイル、スプレッドシートPDF、複数ファイルの添付例
Gmailの制限やGoogleドライブの設定に注意
これらの方法を活用し、効率的なメール送信を実現しましょう!