3

我尝试了几种方法将一种类型的电子邮件过滤到标签中,但过滤器不起作用。

我用谷歌找到了一个脚本来将这些类型的电子邮件转移到垃圾邮件中,但这些电子邮件对我来说不是垃圾邮件。相反,我只想修改脚本以将这些电子邮件移动到某个标签。

这是我找到的脚本:

var threads = GmailApp.getInboxThreads(0, 5);

for (var i = 0; i < threads.length; i++) 
{
    var messages=threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) 
    {
        var message=messages[j];
        var body=message.getRawContent();

        if(body.indexOf("X-Forwarded-For: email@example1.com email@example2.com")>-1)
        {
            GmailApp.moveThreadToSpam(threads[i]);
        }

        Utilities.sleep(1000);
        }
    }
}

X-Forwarded-For: email@example1.com email@example2.com是我在下拉菜单的“显示原件”选项中找到的电子邮件地址。

您能帮我修改脚本以将这些特定类型的电子邮件移动到标签而不是垃圾邮件吗?

4

3 回答 3

2

编辑:

由于这一行,该脚本正在将邮件移动到垃圾邮件文件夹:GmailApp.moveThreadToSpam(threads[i]);

如果您想为邮件应用标签而不是将其标记为垃圾邮件,您可以使用threads[i].addLabel(label). 并且要归档邮件以便它们移出收件箱,您可以使用threads[i].moveToArchive().

这是一个更新的示例:

var threads = GmailApp.getInboxThreads(0, 5);

var label = GmailApp.getUserLabelByName("LABEL NAME GOES HERE");

if (label == null) 
{
    var label = GmailApp.createLabel(label);
}

for (var i = 0; i < threads.length; i++) 
{
    var messages=threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) 
    {
        var message=messages[j];
        var body=message.getRawContent();

        if(body.indexOf("X-Forwarded-For: email@example1.com email@example2.com")>-1)
        {
            threads[i].moveToArchive();                
            threads[i].addLabel(label);
        }

        Utilities.sleep(1000);
        }
    }
}

该修改后的版本允许您在顶部指定标签的名称。如果标签尚不存在,它将创建它。然后,它不会将邮件移至垃圾邮件,而是将其归档并应用您选择的标签。

于 2015-07-24T13:15:09.770 回答
0

完美的!它有效,谢谢Calcolat!如果我可以再打扰您一件事,是否可以添加“跳过收件箱(存档)”功能,以便电子邮件直接转到标签而不堆叠我的收件箱?

于 2015-07-25T18:11:17.627 回答
0

很棒的剧本-谢谢。我稍微修改了 id 以使用 X_Binding ID,因为我发现营销信息(在此示例中为皇家阿尔伯特音乐厅)有一个 xbinding ID,而订单确认邮件没有!我设置了一个每日计时器来清理垃圾!

function FilterVia() {
var threads = GmailApp.getInboxThreads(0, 5);
var label = GmailApp.getUserLabelByName("CIRCULARS");
if (label == null) 
{
    var label = GmailApp.createLabel(label);
}
for (var i = 0; i < threads.length; i++) 
{
    var messages=threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) 
{
    var message=messages[j];
    var body=message.getRawContent();

    if(body.indexOf("X-Binding-ID: RoyalAlbertHallMarketing")>-1)
     {
        threads[i].moveToArchive();                
        threads[i].addLabel(label);
     }

         Utilities.sleep(1000);
     }
    }
}
于 2016-09-22T09:37:01.097 回答