2つの異なるソースから2つのレポートを取得してシートにインポートするスプレッドシートを作成しました。レポートの1つは、1時間ごとにメールに送信されるCSVファイルです。Google Scriptを使用してGmailから添付ファイルを取得する
私が使っているスクリプトはほとんどです。スレッドのメールを確認し、メッセージを取り出して添付ファイルをシートにインポートします。問題は、次のメールが次の1時間に受信され、スクリプトが再び実行され、最新の添付ファイルが取得されず、最初のメールのみがプルされるときです。私はそれが実行されるたびにメッセージを自分のゴミ箱に移動しようとしましたが、それでもゴミ箱から引き出します。ここに私のコードです。
function importReport() {
var threads = GmailApp.search('in:inbox from:"[email protected]"');
var message = threads[0].getMessages()[0];
var attachment = message.getAttachments()[0];
attachment.setContentType('text/csv');
// Is the attachment a CSV file
if (attachment.getContentType() === "text/csv") {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("RawReport");
var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
// Remember to clear the content of the sheet before importing new data
sheet.clearContents().clearFormats();
sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
GmailApp.moveMessageToTrash(message);
}
}
これは、スレッド全体をプルして最新の添付ファイル、アドバイスをインポートすることを目的としていますか?
これを修正しました。ありがとう、トン! –