如何在Gmail中阻止“通过”发件人


16

我在Gmail中遇到这个烦人的问题。垃圾邮件发送者绕过了Gmail垃圾邮件过滤器,它们是如此聪明,以至于我无法创建自己的手动过滤器来阻止它们。他们从以下形式的电子邮件ID向我发送垃圾邮件:

Jewelskart@greatestjewels.in via watchstore.cleanmail.in

Shoppingkart@shoppers.in via watchstore.cleanmail.in

一般来说,

something@somethingelse.in via watchstore.cleanmail.in

现在,我无法为每封邮件都设置过滤器,因为它们来自不同的ID。共同的部分是过地址watchstore.cleanmail.in。但是,当我尝试使用watchstore.cleanmail.in发件人”字段中创建过滤器时,Gmail不会列出这些电子邮件。简而言之,过滤器无法检测通过地址。

报告垃圾邮件/退订选项不起作用。

我如何摆脱这些烦人的垃圾邮件发送者?


2
您确定Report as Spam通过单击Gmail按钮会收到的封邮件吗?这应该适用于其他邮件。顺便说一句,永远不要取消订阅垃圾邮件,它只会确认您的地址是正确的。
JMax 2012年

@JMax感谢您的答复。虽然不是每封邮件,但我曾经将许多此类邮件标记为垃圾邮件。感谢您提醒我有关退订陷阱的信息!
Pavan Manjunath'8

1
我不确定GMail是否具有这种功能。对他们来说,这将是一个很好的功能,因此建议将其推荐给Google。至于Report as Spam问题,我的想法是,它只会阻止垃圾邮件从明显的域发送,而不是从其发送的域发送。同样,这可能是一个很好的建议。
njallam

Answers:


6

Gmail的内置过滤器在这种情况下不起作用的原因是,它们无法应用于“ X-Forwarded-For”标头。该标头是“通过”域信息的存储位置。

我的解决方案是每隔几分钟使用Google Apps脚本检查我的收件箱,并自动过滤掉通过特定域发送的邮件。实际上效果很好。自实施脚本以来,我根本无需处理此类垃圾邮件。您可以在此处阅读我的完整演练:http//www.geektron.com/2014/01/how-to-filter-gmail-using-email-headers-and-stop-via-spam/


+1,出色的解决方法!!但是我找不到“ X-Forwarded-For”标题。其他“标头网站名称”的格式也不容易搜索。例如,“返回路径:<campaign-value4shop-10213-2596-859268-pavan8085=gmail.com@mails.cratusservices.in>”。罪魁祸首域“ mails.cratus ..”嵌入到标头数据中。我们可以使用正则表达式在标头中搜索字符串吗?到目前为止,我正在直接搜索“ mail.cratus ..”,它对我来说已经足够了,但将来可能会导致误报。
Pavan Manjunath 2014年

string.search()可以做正则表达式搜索!现在我的代码工作正常!谢谢你的帮助。您的答案使我对Google应用程序脚本产生了兴趣:)直到Google自己提出了一种通过地址阻止的功能之前,我都会将您的答案标记为正确的:)
Pavan Manjunath 2014年

很高兴为您服务,Pavan!我最近也开始尝试使用Google App脚本,您可以使用它进行很多有趣的操作!
克里斯Z

@PavanManjunath是否可以发布自己的答案,而无需输入X-forward-For,您是如何做到的?急需这个。谢谢。
zar

1

我从我的一个朋友那里听说,有一个Chrome扩展程序可以一键阻止电子邮件地址甚至整个域。我还没有尝试过,但是希望对您有所帮助。这里是链接:阻止发件人


0

我做了一个类似的脚本,它检查“ Received From:”,您可以根据需要在domains变量中添加任意多个域。

//without http:// etc, just domain-name.com or domainname.com ....
var domains = [
  'secureserver.net',
];

  //This is not the best solution, a better solution would be to add a filter like this for example => From: #domainname.com
  //and then this app would read your GMail filters and test whether it begins with # to apply the next function if so.. but I couldn't find a way to read GMail settings from here

function filterVia() {
  // get all threads in inbox
  var threads = GmailApp.getInboxThreads();

  for (var i = 0; i < threads.length; i++) {
    Utilities.sleep(100);
    // get all messages in a given thread
    var messages = threads[i].getMessages();
    // iterate over each message
    for (var j = 0; j < messages.length; j++) {
      // log message subject
      var content = messages[j].getRawContent();

      for (var k = 0; k < domains.length; k++) {
        //make domain name as regexp
        var re = new RegExp('\\.|\\-', 'gi');
        var b = domains[k].replace(re, '\\$&');
        var regex = new RegExp("Received\: from .*" + b,'gim');
        var does_match = regex.test(content);

        if(does_match){
          //MARK AS READ (maybe spares you an unnecessary notification)
          messages[j].markRead();
          //DELETE THE MESSAGE
          messages[j].moveToTrash();          
        }

      }
    }
  }
}

0

如果最终有人在这里寻找一种通过标签过滤接收到的电子邮件并将其保存到标签文件夹中的方法,而不是将其标记为垃圾邮件并丢弃它们,那么这里的脚本就是这样做的(由@ChrisZ提供)。

function filterByVia() {
  var threads = GmailApp.getInboxThreads(0, 5);
  var label = GmailApp.getUserLabelByName("yourlabel");
  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("the domain after via") > -1) {
        label.addToThread(threads[i]);
      }
      Utilities.sleep(1000);
    }

   }
 }

希望有一天能对某人有所帮助


请详细说明标签是什么?我想通过via域提交。
zar

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.