【GAS】Gmailにローカルファイルを添付して送信する方法
Google Apps Script(GAS)を使えば、ローカル環境に保存されたファイルをGmailに添付して送信することができます。この記事では、GASを使ったローカルファイルの添付方法を解説し、具体例や注意点を紹介します。
Gmailにローカルファイルを添付する方法
GASを使用してローカルファイルを添付する場合、次の手順が必要です。
- ローカルファイルをGoogleドライブにアップロードする
 - 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ドライブの設定に注意
これらの方法を活用し、効率的なメール送信を実現しましょう!








