1
私はこのスクリプトを使って、ここ数週間は遊んでいます。スクリプトの目的は、レポートの受信トレイを通過し、電子メールの添付ファイルからレポートデータを取得し、Googleスプレッドシートにコピーした後、メールのラベルを変更して受信トレイから削除して、Google Apps Script - Relabeling Eメール
この順序でスクリプト機能は:受信トレイに新規メールの
- ルック添付ファイル付きの
- コピー添付データ
- は
- 次のオープン行のスプレッドシートに貼り付けてメールをラベルを変更[受信トレイ]の代わりに[レポート]を使用してすべてのレポートをレポートフォルダに移動します。
達成されたステップ1〜3、しかし私の人生のために、私は働きにラベルを貼ることができません。 Google Appsコンソールでデバッグを実行すると、エラーは表示されません。下に貼り付けられているのは、再ラベル付けを行うスクリプトの抜粋です。
for (var i = 0; i < myLabel.length; i++) {
labels = myLabel[i].getLabels();
for (var j = 0; j < labels.length; j++) {
labels[j].addLabel("test_2");
labels[j].removeLabel("Test");
}
}
以下は、実行中の完全なスクリプトです。
function getCSV() {
// Create variable that looks for Gmails in the main inbox
var myLabel = GmailApp.getUserLabelByName("test");
Logger.log("myLabel:",myLabel);
// Create variable that is filled with all threads within Inbox label
var threads = myLabel.getThreads();
Logger.log("threads:",threads);
// Retrieves all messages in the specified thread
var msgs = GmailApp.getMessagesForThreads(threads);
Logger.log("msgs:",msgs);
// Uses active sheet the script is implemented on
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("test");
// Grabs CSV data from attachments and pastes into next available row in Spreadsheet
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
var attachments = messages[j].getAttachments();
Logger.log("attachments:",attachments);
var csvData = Utilities.parseCsv(attachments[j].getDataAsString(), ",");
Logger.log(csvData);
for (var k = 1; k < csvData.length; k++) {
var dataPaste = sheet.appendRow(csvData[k]);
Logger.dataPaste;
}
}
}
// Removes Inbox Label and Adds Report Label
for (var i = 0; i < myLabel.length; i++) {
labels = myLabel[i].getLabels();
for (var j = 0; j < labels.length; j++) {
labels[j].addLabel("test_2");
labels[j].removeLabel("Test");
}
}
}