2016-11-03 4 views
0

ラベルを1つしか持たないメールをターゲットにする方法を探しています。私は特定のラベルを持ち、2週間以上経過したメッセージを削除したいと思います。しかし、スクリプトは、指定されたラベルの他に追加のラベルを持つ電子メールを無視するようにします。指定されたラベルのみの*メール*を削除するGoogle Scriptのスクリプト

ラベルの付いた電子メールが 「サブスクリプション」が削除される例えば

が、「サブスクリプション」がラベルとの電子メール「キープ!」はできません。

私が現在行っているバージョンでは、他のラベルが適用されているかどうかに関係なく、指定されたラベルのメールは削除されます。

Gmail Cleaning Robot scriptFred Mouniguetで公開しています。ここで

は、私がこれまで持っているものです。

function gmailCleaningRobot() { 

var delayDays = 14; // will only impact emails more than 2 weeks old 
var maxDate = new Date(); 
maxDate.setDate(maxDate.getDate()-delayDays); // what was the date at that time? 

// Get all the threads labeled 'Subscriptions' 
var label = GmailApp.getUserLabelByName("Subscriptions"); 
var threads = label.getThreads(0, 100); 

// we archive all the threads if they're unread AND older than the limit we set in delayDays 
for (var i = 0; i < threads.length; i++) { 
if (threads[i].getLastMessageDate()<maxDate && threads[i].isUnread()) 
{ 
threads[i].moveToTrash(); 
} 
} 
} 

任意の助けいただければ幸いです!

答えて

0

ifステートメントのスレッドインスタンスでgetLabelsを使用すると、これを解決できます。

下記を試してください。

if (threads[i].getLastMessageDate()<maxDate && threads[i].isUnread() 
    && threads.getLabels().length == 1) 
関連する問題