如何过滤 Gmail 邮件头并停止 "via" 进入标签
How to filter Gmail headers and stop "via" into labels
我尝试了多种方法来将一种类型的电子邮件过滤到标签中,但过滤器不起作用。
我用 Google 找到了一个脚本来将这类电子邮件移到垃圾邮件中,但这些电子邮件对我来说不是垃圾邮件。相反,我只想修改脚本以将这些电子邮件移动到某个标签。
这是我找到的脚本:
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
是我在下拉菜单的 "Show Original" 选项中找到的电子邮件地址。
你能帮我修改脚本,将这些特定类型的电子邮件移到标签中,而不是垃圾邮件中吗?
编辑:
由于这一行,脚本正在将邮件移至垃圾邮件文件夹: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);
}
}
}
修改后的版本允许您在顶部指定标签的名称。如果标签尚不存在,它将创建它。然后它不会将邮件移至垃圾邮件,而是将其存档并应用您选择的标签。
完美!它有效,谢谢 Calcolat!如果我能再打扰你一件事,是否可以添加 "Skip the Inbox (Archive it)" 功能,这样电子邮件将直接转到标签而不堆放在我的收件箱中?
很棒的剧本 - 谢谢。我稍微修改了 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);
}
}
}
我尝试了多种方法来将一种类型的电子邮件过滤到标签中,但过滤器不起作用。
我用 Google 找到了一个脚本来将这类电子邮件移到垃圾邮件中,但这些电子邮件对我来说不是垃圾邮件。相反,我只想修改脚本以将这些电子邮件移动到某个标签。
这是我找到的脚本:
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
是我在下拉菜单的 "Show Original" 选项中找到的电子邮件地址。
你能帮我修改脚本,将这些特定类型的电子邮件移到标签中,而不是垃圾邮件中吗?
编辑:
由于这一行,脚本正在将邮件移至垃圾邮件文件夹: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);
}
}
}
修改后的版本允许您在顶部指定标签的名称。如果标签尚不存在,它将创建它。然后它不会将邮件移至垃圾邮件,而是将其存档并应用您选择的标签。
完美!它有效,谢谢 Calcolat!如果我能再打扰你一件事,是否可以添加 "Skip the Inbox (Archive it)" 功能,这样电子邮件将直接转到标签而不堆放在我的收件箱中?
很棒的剧本 - 谢谢。我稍微修改了 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);
}
}
}