【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ドライブの設定に注意
これらの方法を活用し、効率的なメール送信を実現しましょう!