【保存漏れゼロ】GASでGmail添付ファイルを自動保存!誰でもできる最強スクリプト公開

はじめに:「添付ファイル保存し忘れ」もうやめませんか?

  • 毎日届く見積書や請求書、うっかり保存忘れ…

  • 重要な添付ファイル、探しても見つからない…

  • 手動でダウンロードする時間、地味に無駄…

こうした問題、**Google Apps Script(GAS)**を使えば一発で解決できます!

この記事では、
Gmailに届いた添付ファイルを自動でGoogleドライブに保存するスクリプトを、初心者でも簡単に作れるように徹底解説します!

一度設定すれば——

✅ 重要ファイルを自動で整理
✅ 人為ミスゼロ
✅ 業務効率爆上がり

すべてが手に入りますよ!


なぜGASでGmail添付ファイルを自動保存すべきなのか?

■ 手動保存=ミスの温床

人間が手作業で保存している限り、

  • 忙しくて忘れた

  • ファイル名ミス

  • 保存先間違い

といったリスクはゼロになりません。

特にビジネスでは、添付ファイル管理ミスは命取りです。

■ GASなら、確実・自動・無料

Google Apps Scriptを使えば、

  • Gmailから添付ファイルを検出

  • 自動でドライブ指定フォルダに保存

  • ファイル名変更や分類も自由自在

すべて完全自動化できます。
しかも無料、設定は一度だけ!


ステップ1:保存先のGoogleドライブフォルダを作成する

まずは、
Gmailから保存するファイルを入れる専用フォルダをGoogleドライブに作成しましょう。

フォルダを作ったら、そのフォルダIDをメモしておきます。

フォルダを開いたときのURLの
folders/の後ろにある文字列がフォルダIDです。

例:
https://drive.google.com/drive/folders/1a2b3cXYZ
→ フォルダID:1a2b3cXYZ


ステップ2:基本スクリプトを作成する

次に、GASエディター(Google Apps Script)を開き、
新しいプロジェクトを作成して以下を貼り付けます。

// 保存先ドライブフォルダIDを指定
const FOLDER_ID = 'あなたの保存先フォルダID';

// 保存対象のメール条件を指定(ラベル、件名、送信元など)
const QUERY = 'has:attachment newer_than:7d'; // 添付あり&直近7日間のメール

function saveGmailAttachments() {
  var threads = GmailApp.search(QUERY);
  var folder = DriveApp.getFolderById(FOLDER_ID);

  threads.forEach(function(thread) {
    var messages = thread.getMessages();
    messages.forEach(function(message) {
      var attachments = message.getAttachments();
      attachments.forEach(function(file) {
        folder.createFile(file);
      });
    });
  });
}

このスクリプトを実行すると、
直近7日間に届いた添付ファイルがすべてドライブに自動保存されます!


ステップ3:保存対象をもっと絞り込む

必要に応じて、保存対象メールを細かく絞れます。

例えば:

  • 特定の件名を含むメールだけ → subject:見積書

  • 特定の送信元だけ → from:client@example.com

  • PDFだけ保存したい → 保存時にMIMEタイプ判定

ファイル種類で絞り込む例

attachments.forEach(function(file) {
  if (file.getContentType() === 'application/pdf') {
    folder.createFile(file);
  }
});

これでPDFだけを保存できるようになります!


ステップ4:完全自動化するためにトリガーを設定

毎日自動で動かしたいですよね?
GASの「トリガー」を使えばOKです!

設定方法:

  1. GASエディターで「トリガー」アイコンをクリック

  2. 「+トリガーを追加」

  3. 関数:saveGmailAttachments

  4. イベントの種類:「時間主導型」

  5. 頻度:「1日1回」or「1時間ごと」など好きなペースで設定

これで、Gmailチェック→添付保存が完全自動になります!


ステップ5:さらに実用的なアレンジ集

■ 保存後、メールにラベルをつける

ファイル保存済みのメールにラベルをつけて管理することもできます。

function labelProcessedMail(message) {
  var label = GmailApp.createLabel('Attachment_Saved');
  message.addLabel(label);
}

保存処理が終わったあとに呼び出せば、
保存済みか一目でわかるようになります!


■ ファイル名をわかりやすく自動リネーム

デフォルトのファイル名だとわかりづらい場合、
件名+日付を組み合わせたファイル名に自動変更も可能。

var newName = message.getSubject() + "_" + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyyMMdd") + ".pdf";
folder.createFile(file.getBlob()).setName(newName);

これで、ファイル名=メール件名+日付になり、管理が劇的に楽になります!


実運用で気をつけるポイント

■ スプレッドシート連携でログ管理

どのファイルをいつ保存したか、スプレッドシートに記録しておけば後から追跡も簡単です。

■ GASリクエスト制限(Quota)に注意

一度に大量のファイルを処理すると、GASのリクエスト上限に引っかかる場合があります。
大量保存が発生する場合は、保存件数を制御するなど工夫が必要です。


まとめ:GASで「添付ファイル保存忘れ」から卒業しよう!

今回紹介した内容をまとめると——

  • GASでGmail添付ファイルを自動保存できる

  • 条件指定で「必要なものだけ」保存可能

  • ドライブに自動分類&整理も可能

  • 一度作れば完全放置でOK

これを導入すれば、
ファイル保存漏れ・手間・ミスから一気に解放されます!

今日からあなたも、
GASでGmail添付ファイル保存の完全自動化に挑戦してみましょう!

Shop now