【GAS×Gmail特集】Gmailの添付ファイルを自動保存する方法

GAS メール 添付ファイル 自動保存

Gmailで毎日届く請求書や報告書の添付ファイルを、手動で保存していませんか?

本記事では、Google Apps Script(GAS)を使ってGmailの添付ファイルを自動でGoogleドライブに保存する方法を、初心者向けにわかりやすく解説します。

目次

この記事でわかること

  • GASとは?簡単な概要とメリット
  • Gmail添付ファイルの自動保存の仕組み
  • 実際に使えるGASコードと設定手順
  • よく使う検索条件(クエリ)の例
  • 自動実行(トリガー)設定と注意点

Google Apps Script(GAS)とは?

GASとは、Googleの提供する無料の自動化ツールで、JavaScriptベースでGmailやGoogleドライブなどを操作できます。
プログラミング初心者でも、テンプレートを使えば簡単に自動化を始められます。

Google Apps Script(GAS)の基礎知識は別記事で紹介してますので参考に読んでみてくださいね

あわせて読みたい
【初心者向け】Google Apps Scriptとは?スプレッドシートを自動化して作業効率アップ! Googleスプレッドシートを使っていて、「この作業、毎回手作業でやるのが面倒…」と思ったことはありませんか? そんな時に活躍するのが Google Apps Script(GAS) です...

GASでGmailの添付ファイルを自動保存するメリット

  • 📥 添付ファイルの手動保存から解放される
  • ⏳ 作業時間の短縮&ヒューマンエラー防止
  • 🔄 ドライブ上で自動バックアップが可能
  • 📁 メールの内容に応じてファイルを自動整理できる

GASでGmailの添付ファイルをGoogleドライブに保存するコード


function saveAttachmentsToDrive() {
  const labelName = "Processed";
  const searchQuery = 'has:attachment subject:"レポート" newer_than:7d'; // 条件は自由に変更可能
  const folderId = "YOUR_FOLDER_ID_HERE"; // Googleドライブの保存先フォルダIDを入力

  const label = getOrCreateLabel(labelName);
  const threads = GmailApp.search(`${searchQuery} -label:${labelName}`);
  const folder = DriveApp.getFolderById(folderId);

  for (const thread of threads) {
    const messages = thread.getMessages();
    for (const message of messages) {
      const attachments = message.getAttachments();
      attachments.forEach(file => {
        folder.createFile(file.copyBlob());
      });
    }
    thread.addLabel(label); // 処理済みラベルを付けて重複処理防止
  }
}

function getOrCreateLabel(name) {
  const label = GmailApp.getUserLabelByName(name);
  return label || GmailApp.createLabel(name);
}

🔍 よく使うGmail検索条件(クエリ)の例

検索条件(searchQuery)には、以下のような演算子を組み合わせて自由に指定できます。

演算子説明
subject:キーワード件名に特定のキーワードを含む
subject:"レポート" OR subject:"請求書"件名に複数のキーワードを含む(どちらか)
from:xxx@example.com特定の送信者からのメールを対象
is:unread未読メールのみ対象
newer_than:2d過去2日以内に届いたメールのみ対象

組み合わせ例:
has:attachment subject:"請求書" from:accounting@example.com newer_than:3d

スクリプトの設定手順

  1. Google Apps Script エディタにアクセス
  2. 新しいプロジェクトを作成し、上記コードを貼り付け
  3. YOUR_FOLDER_ID_HEREをGoogleドライブのフォルダIDに置き換え
  4. 「関数を選択」→saveAttachmentsToDriveを実行
  5. 初回はGmailとドライブのアクセス許可が求められます

⏰ トリガー設定で自動実行(毎日など)

  1. スクリプトエディタの時計アイコン(トリガー)をクリック
  2. 「トリガーを追加」を選択
  3. 関数名:saveAttachmentsToDrive
  4. イベントタイプ:「時間主導型」→「日付ベース」→「毎日」などを選択

応用例と注意点

✅ 応用例

  • ファイルの拡張子で振り分け(PDFのみ保存など)
  • Googleスプレッドシートにファイル情報を記録
  • 件名ごとに別フォルダへ自動保存

⚠️ 注意点

  • Gmailの検索結果上限(最大500件)に注意
  • 保存先のGoogleドライブ容量も定期的に確認を
  • ラベルで処理済みを管理し、重複保存を防止

まとめ|Gmail添付ファイルの自動保存で作業を効率化!

GASを使えば、Gmailに届いた添付ファイルをGoogleドライブへ完全自動で保存できます。設定も簡単で、毎日の業務を効率化したい方におすすめです。

一度設定すれば、あとは自動で処理されるので非常に便利です!

記事が役に立ったら、ぜひシェアや公式LINEでコメントをお願いします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次