シュール手芸作家・korotoroのblog

シュールな手芸をたくさんつくる。korotoroがつらつらと思ったことを書いているブログですよ

GoogleAppScriptで、一定の条件下のメールの添付ファイルをまとめてGoogleDriveのフォルダに入れるスクリプトをつくった、の話

こんばんは!korotoroだよ!

今日は、GAS(GoogleAppScript)で作ったツールの話だよ。

 

GoogleAppScriptとは

developers.google.com

要するにGoogleの各種サービス上のデータを横断的に処理できるスクリプト。とてもべんりなのです。

 

困っていたこと/今回やったこと

あるgmailアカウントに、特定のラベル付け済み、ある文字列を含む件名のたくさんのメール(300件くらい)が定期的にきて、1通1通に添付ファイルがついている事態。それを添付ファイルだけダウンロードしてまとめたい、というシチュエーション。

1通1通ぽちぽちしてダウンロードする作業を考えただけでめまいがします。

そこで、Gmailに連動したGoogleDrive内にフォルダを設置、その中に一定の条件下のメールの添付ファイルをまとめて入れる処理をつくりました。(=GoogleDriveはフォルダごとzipにしてダウンロードできるので、1通1通ぽちぽちしないですむ)

イメージとしては、ツールからバラバラと自動送信される定期レポートとかを回収せねばならん時に使う感じです。

 

じゃ、使い方

といっても、つかうかたによって処理したい対象のメールの条件も、付けたいフォルダ名も様々だと思いますので、そのあたりカスタム前提で話していきます。

 

準備すること

・集めたい添付ファイルのついたメール群を受信しているGmailアカウントにログイン

・添付ファイルをまとめておくフォルダ名をきめる

・添付ファイルがついたメールの検索条件(gmailの検索窓に入るやつ、Label:  とか  subject: とかを含むやつをそのまま)をコピーしておく

ここの書式については詳細検索 - Gmail ヘルプに詳しいです。例えば受信トレイ全部なら、in:inbox です。

 

次に、

https://drive.google.com/open?id=1bqhNE_jPvg03XReGuONJhoyp05UWgUgol0LGGGmgEpFc-aPWuVtt8ZpS

Googleアカウントにログインした状態で、↑のURLにアクセスして、「ファイル」→「コピーを作成」と操作。

そうするとあなたのGoogleDriveにスクリプトのコピーが作成されます。このコピーのスクリプトを以後編集、実行してください。

 

では、スクリプト内、考えていたフォルダ名を12行目、検索条件を15行目、指定の場所に入れて、「保存」、「実行」→「Labelpick」を選択。

(初回実行時のみ「承認」→「許可」の別窓が開くので許可しよう)

現状結構時間がかかるスクリプトみたいなんですが、あらかじめ決まってる予定とか毎月の作業であれば、上部メニュー時計マークの部分でできるトリガー設定とかするといいかも。

 

また、毎月の作業の場合、検索条件のところにも処理するメールの期間(after:YYYY/MM/DD とか)を入れたりするといいかも。すると全部のメールを見てしまう=時間かかる&先月のファイルもまた改めて集めてしまう、といった事態を防げます。

 

今回のスクリプトは、

GMailで特定のラベルを付けたメールの添付ファイルを自動でGoogle Driveに保存するGoogle Appsスクリプト - noriaki blog はてな出張所

を参照して作成いたしました。

あと、作成の過程でrazokulover氏に大変たすけてもらいました、ありがとう夫よ。

 

そんな感じです!