Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何过滤Gmail邮件头并停止;via";成标签_Google Apps Script_Gmail_X Forwarded For - Fatal编程技术网

Google apps script 如何过滤Gmail邮件头并停止;via";成标签

Google apps script 如何过滤Gmail邮件头并停止;via";成标签,google-apps-script,gmail,x-forwarded-for,Google Apps Script,Gmail,X Forwarded For,我尝试了几种方法将一种类型的电子邮件过滤到标签中,但过滤器不起作用 我用谷歌找到了一个脚本,把这些邮件变成垃圾邮件,但这些邮件对我来说不是垃圾邮件。相反,我只想修改脚本,将这些电子邮件移动到某个标签 这是我找到的脚本: var threads = GmailApp.getInboxThreads(0, 5); for (var i = 0; i < threads.length; i++) { var messages=threads[i].getMessages();

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

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

这是我找到的脚本:

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);
        }
    }
}
var-threads=GmailApp.getInboxThreads(0,5);
对于(var i=0;i-1)
{
GmailApp.moveThreadToSpam(threads[i]);
}
睡眠(1000);
}
}
}
X-Forwarded-For:email@example1.com email@example2.com
是我在下拉菜单的“显示原件”选项中找到的电子邮件地址

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

编辑:

脚本正在将邮件移动到垃圾邮件文件夹,因为这一行:
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);
        }
    }
}
var-threads=GmailApp.getInboxThreads(0,5);
var label=GmailApp.getUserLabelByName(“标签名在此显示”);
if(label==null)
{
var label=GmailApp.createLabel(标签);
}
对于(var i=0;i-1)
{
线程[i]。移动到存档();
线程[i]。添加标签(标签);
}
睡眠(1000);
}
}
}

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

完美!它起作用了,谢谢你Calcolat!如果我能再麻烦你一件事,是否可以添加“跳过收件箱(存档)”功能,使电子邮件直接进入标签,而不堆叠我的收件箱?

很棒的脚本-谢谢。我稍微修改了id以使用X_绑定id,因为我发现营销消息(在本例中为Royal Albert Hall)有一个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);
     }
    }
}
函数FilterVia(){
var threads=GmailApp.getInboxThreads(0,5);
var label=GmailApp.getUserLabelByName(“循环”);
if(label==null)
{
var label=GmailApp.createLabel(标签);
}
对于(var i=0;i-1)
{
线程[i]。移动到存档();
线程[i]。添加标签(标签);
}
睡眠(1000);
}
}
}

好的,你在网上找到了一个脚本,但现在你需要阅读文档并尝试修改,向我们展示什么不起作用。很高兴它起作用了。是的,你也可以这样做。我刚刚更新了我上面的答案,并做了一些更改,这些更改将应用标签并为您存档电子邮件。也只是一个简单的提示,但是如果你有任何意见或进一步的问题,最好点击我的答案下的“添加意见”链接并以这种方式回复。如果你像这样发布评论或问题作为答案,如果版主看到它们,它们可能会被删除。