質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

9009閲覧

Google Apps Script で、新規に受信したGmailの添付ファイルをGoogleドライブに保存したい

kouji-t

総合スコア10

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2017/08/25 04:49

Google Apps Script について、教えていただけないでしょうか。

・やりたい事
Google Apps Scriptで受信したGmailに添付ファイルが存在した場合、添付ファイルを
指定したGoogleドライブのフォルダに保存するプログラムを書くことは可能でしょうか。

Google Apps Script で、そもそもGmailの受信メールの内容を解析して
添付ファイルの存在を調べることができるのでしょうか。
また添付ファイルが存在した場合は、指定したGoogleドライブのフォルダを指定して
保存することが、できるかが知りたいです。

処理フロートは以下を考えております。
1.受信ボックスを監視して、新規で受信したメールを検知する。
2.新規で受信したメールを調べて添付ファイルの有無を確認する。
3.添付ファイルが存在したら、指定したGoogleドライブのフォルダにコピーを作成する。
4.受信ボックスの監視に戻る。

・調べた事
GmailMessageオブジェクトに、getAttachments() というメソッドがあり
添付ファイルの情報を取得できそうであると考えておりますが、この考え方は正しいでしょうか。
その添付ファイルをGoogleドライブにコピーする手段があるのでしょうか。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ご紹介頂いたサンプルを元に作成しました。
簡単にテストして動作は確認しました。始めての作成で不備がある
可能性があります。ご利用は自己責任でお願い致します。
トリガーは一分毎に実行しました。参考になれば幸いです。

function myFunction() { Logger.log("start"); var Threads = GmailApp.getInboxThreads(); for(var i=0;i<6;i++){ var status = Threads[i].isUnread(); if(status==true){ var subject = Threads[i].getMessages()[0].getSubject(); //抽出するメールを件名で絞り込む if(subject=="****メールの件名****"){ var msgs = Threads[i].getMessages(); //スレッドのメッセージを回して最新のメールの添付ファイルの配列を取得する var attachments for(m in msgs) { var msg = msgs[m]; //そのメールが未読かチェックする if(msg.isUnread()){ //未読だった場合、添付ファイルオブジェクトを取得 attachments = msg.getAttachments(); //添付ファイルオブジェクトの配列からファイルを全てコピーする for(var j = 0;j<attachments.length;j++) { var folder = DriveApp.getFolderById('****フォルダのID****'); for(var j = 0;j<attachments.length;j++){ var data = DriveApp.createFile(attachments[j]); folder.addFile(data); //ルートディレクトリに作られたファイルを削除する DriveApp.getRootFolder().removeFile(data); Logger.log("copy name: " + data.getName()); } //メールを既読にする msg.markRead() } } } //ごみ箱に捨てる前にスレッドを念の為、既読にする Threads[i].markRead(); Threads[i].moveToTrash(); //保存終了したらゴミ箱に移動 } } } Logger.log("end"); }

投稿2017/09/12 05:36

kouji-t

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

まずは試してみてうまくいかない点を プログラムのソース付きで、具体的に質問するのが良いと思います。

とりあえず、google で、「gmail 添付ファイル 保存 Google Apps Script」で、検索した結果、同じようなことをしているブログが検索されたので、検索結果の上位を紹介しておきます。

Google Apps ScriptでGmailの添付ファイルをGoogleドライブに保存する
Gmailの添付ファイルをGoogleDriveへ自動保存!GoogleAppsScript活用法

投稿2017/08/25 05:00

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kouji-t

2017/08/25 09:57

教えて頂いたURLの情報を参考にまず作成し 問題点が発生したら、ソースを書いて質問をするように致します。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問