Initial Site

Initial Site

Initial Site

【GAS】Gmailの添付ファイルを自動でGoogleドライブへ保存する

  • ヨシモト  2018/09/17 17:27
bg_kaitenzushi

営業部 ヨシモトです。

PCでもスマホでも共通のストレージとして利用できるGoogle ドライブってとっても便利ですよね!

しかもGmailの添付ファイルも簡単に保存できるのも便利!

でも、特定の条件に合致した複数のメールの添付ファイルを一括で、しかも自動で保存できたらもっと便利なんですが…。

 

複数のメールの添付ファイルを自動でドライブに保存

これをGoogle Apps Script(以下、GAS)で解決します。

手順としては

1.Gmailの検索クエリを指定してメールを拾っていく

2.そのメールに添付されているファイルをドライブへ保存する

この2段階です、カンタン!

既に過去にGmailから本文を抜き出すスクリプトの記事などでも1.は行っていますね。

2.も難しい内容ではありませんので早速やってみましょう。

 

コードを書く前に、Google ドライブ内に添付ファイル保存用のフォルダを作っておいてください。

 

Google Apps Scriptで書く

function hasAttachment() {
  var fol = DriveApp.getFolderById('ここはドライブのID');
  var thds = GmailApp.search("いらすと has:attachment jpg OR png", 0, 3);
  var messe = GmailApp.getMessagesForThreads(thds);

  for(var i = 0; i < messe.length; i++) {
    for(var j = 0; j < messe[i].length; j++) {
      var attach = messe[i][j].getAttachments();
      for(var k = 0; k < attach.length; k++){
        fol.createFile(attach[k]);
      }
    }
  }
}

 

解説

  var fol = DriveApp.getFolderById('ここはドライブのID');

まず添付ファイルを保存するフォルダのをIDにて指定しておきます。

該当フォルダに入るとURLに書いてあります。

folderIdCap

 

  var thds = GmailApp.search("いらすと has:attachment jpg OR png", 0, 3);

検索クエリを指定します。

has:attachment を指定すると、添付ファイルが存在するメールを検索してくれます。

また、ここではjpg OR png を加えて画像ファイルに絞っています。

ちなみにこの場合、ZIPファイルにjpgファイルが含まれていると、該当のZIPファイルも拾ってくれます。便利!

Gmailの検索演算子は他にも便利なのがたくさんあるので、公式のヘルプページをご覧ください。

Gmail で使用できる検索演算子 – Gmail ヘルプ

 

  var attach = messe[i][j].getAttachments();

検索で取得したメッセージに対してgetAttachments()することで添付ファイルを取得することができます。

getAttachments()は添付ファイルが配列に格納されることをイメージしましょう。

 

  for(var k = 0; k < attach.length; k++){
    fol.createFile(attach[k]);
  }

はじめに指定したフォルダに対してcreateFile()することで、フォルダの中にファイルを作成します。

この時、先ほど格納した添付ファイルの配列で繰り返しこの動作をしてもらいます。

 

これを実行すると

folderCapAfter

ドライブに保存されました!これは便利!

 

その他、スプレッドシートやGASに関する記事はこちらからどうぞ。

GASを使ってGmailから本文の一部を抜き出す

スプレッドシート独自の便利な関数

QUERY関数の便利な使い方

スプレッドシートを使って簡単なスクレイピングをしてみよう

【GAS】正規表現を使ってGmailの本文から文章を抜き出す

【簡単】GASでスプレッドシートの送信リストからメールを送る

【GAS】正規表現を使って複数行の文章をGmailから抜き出す

【GAS】Gmailで複数のメールの添付ファイルを一括でGoogleドライブへ保存する

【難しくない】GASでwebスクレイピングして正規表現でデータを集める

【GAS】OCRを使った画像の文字取得を自動化する


コメントをどうぞ

ツールの記事

  1. ai_search
    【GAS】OCRを使った画像の文字取得を自動化する
  2. dance_shoot_dance
    【難しくない】GASでwebスクレイピングして正規表現でデータを集める
  3. bg_kaitenzushi
    【GAS】Gmailの添付ファイルを自動でGoogleドライブへ保存する
  4. kid_job_boy_programmer
    【GAS】正規表現を使って複数行の文章をGmailから抜き出す