AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1634160
Accepted
Camille Goudeseune
Camille Goudeseune
Asked: 2021-03-18 13:46:58 +0800 CST2021-03-18 13:46:58 +0800 CST 2021-03-18 13:46:58 +0800 CST

检测来自标头中随机域名的垃圾邮件,在 .procmailrc

  • 772

来自一家知名组织的垃圾邮件,该组织出售大量仿冒品,从无人机到 Roombas 等各种产品,使用 、 和 字段中的随机域From:,Message-ID:所有Reply-To:域 都不同,甚至没有共同的尾随xyz.com。(非垃圾邮件倾向于共享至少和.
的域名。)Message-ID:Reply-To:

~/.procmailrc 中的配方可以检测到此类垃圾邮件,然后将其转发到垃圾邮件文件夹吗?

  • 喜欢带有命名捕获组的正则表达式?

  • 关于用'A'或'a'链接动作的东西?

  • 递归调用procmail,如其手册页所建议的那样?

  • 将邮件标题传递给以具有更好字符串处理的语言编写的脚本的“过滤器”?


例如:namebrandwigs.com、mysuburbankitchen.com、aliyun.com。

From [email protected]  Wed Mar 17 09:27:54 2021
Return-Path: <[email protected]>
X-Original-To: ---
Delivered-To: ---
Received: from mysuburbankitchen.com (unknown [5.253.84.113])
        by --- (Postfix) with ESMTP id 332025E236
        for <--->; Wed, 17 Mar 2021 09:27:53 -0500 (CDT)
To: ---
Subject: drone with new features
Message-ID: <[email protected]>
Date: Wed, 17 Mar 2021 08:13:03 +0100
From: "Jake Allen" <[email protected]>
Reply-To: [email protected]
MIME-Version: 1.0
X-Mailer-Sent-By: 1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Status: RO

<html>
<head>
</head>
<body>
<span style="display: block; text-align: left;"><span style="display:
block; text-align: left;">Hi,<br /><br /><span>Hope all is well.</span><br
/>We are contacting you today to let you know that we have got the
following new drone, ready to ship to worldwide customers.<span><span><br
/><br /></span></span></span></span><span style="display: block;
text-align: left;"><span style="display: block; text-align:
left;"></span></span><span style="display: block; text-align: left;"><span
style="display: block; text-align: left;"><span style="display: block;
text-align: left;"></span></span></span><span style="display: block;
text-align: left;">Explore new places and amp up your videography skills
with the our F9 4K HD camera drone.
...

其他示例,格式类似,但消息正文中缺少可标记文本:

  • 来自momentwatch.com / musicley.com的皮革按摩椅
  • 来自 mtndewkid.com / myhondafitev.com / constructiongear.com 的 Roomba
  • 来自 hairrehablondon.com / hairocean.com / hotmail.com 的视频投影仪
email spam-prevention
  • 2 2 个回答
  • 124 Views

2 个回答

  • Voted
  1. tripleee
    2021-03-19T11:02:29+08:002021-03-19T11:02:29+08:00

    基于一些有限的例子,很难想出任何具体的东西可以在今天起作用并在明天继续起作用。如果您的实际问题真的是“如何防止来自 Procmail 的垃圾邮件”,那么显而易见、简单且有据可查的答案是“运行像 SpamAssassin 这样的全谱垃圾邮件过滤器并检查其结果”。即使那样,您的准确率也可能永远不会是 100%;但是 SpamAssassin 为您基本上配置并忘记的工具做得不错。它广泛依赖于为垃圾邮件发送者使用的 IP 地址、URL 和其他网络资源提供动态信誉信息的外部服务,因此实际上在幕后进行了大量操作。

    SpamAssassin wiki 上的 UsedViaProcmail有更多说明。简而言之,一旦您安装并配置了 SpamAssassin,请尝试类似

    :0fw
    * < 512000
    | spamassassin
    
    :0:
    * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
    almost-certainly-spam
    
    :0:
    * ^X-Spam-Status: Yes
    probably-spam
    

    仅当您发送到需要锁定的邮箱时,第二个冒号:0:才正确(例如 mbox 文件,但绝对不是 Maildir 目录;但根据您问题中的示例,您似乎在 mbox 上)。如果您经常收到大垃圾邮件,可能会删除大小条件* < 512000或调整数量。SpamAssassin 标准 Procmail 样板包括一个锁定文件,这在您的个人系统上是不必要的,并且在共享主机上可能是可疑的,以及一些奇怪的货物邪教巫术围绕着断线From,我认为这实际上是不正确的。

    如果您需要针对您提供的样本的特定建议,请理解,即使是经过深入研究且绝对真实的事实,可以让您完全相信不会出现误报而丢弃这些特定消息,这对于处理任何其他问题几乎毫无用处消息,和/或明天或下周过时。

    • 1
  2. Best Answer
    tripleee
    2021-03-20T01:10:43+08:002021-03-20T01:10:43+08:00

    这是一个 Procmail 配方,它实现了我认为您可能会问的内容。

    它使用评分,这是一个有点晦涩但偶尔有用的功能。From:简而言之,如果存在带有域名的标头(因为总是存在),我们分配 1 分,然后如果Reply-To:orMessage-Id:标头在@.

    :0:
    *    1^0 ^From:.*@\/[^@<>   ]+
    * $ -1^0 ^Message-Id:.*@$\MATCH\>
    * $ -1^0 ^Reply-To:.*@$\MATCH\>
    suspicious
    

    我预测这会有相当高的误报率,但如果您收到大量带有这种特定模式的垃圾邮件,它可能会为您提供价值,特别是如果您可以将其与白名单结合使用。

    我仍然建议您suspicious定期检查该文件夹,并将任何误报找出回您的常规收件箱。

    这是使用您提供的示例运行的演示,而交付/dev/null只是为了演示。

    bash$ procmail -m VERBOSE=yes /tmp/procmailrc </tmp/sample 
    procmail: [16] Fri Mar 19 09:06:29 2021
    procmail: Rcfile: "/tmp/procmailrc"
    procmail: Assigning "MAILDIR=/home/tripleee"
    procmail: Assigning "MATCH="
    procmail: Matched "namebrandwigs.com"
    procmail: Score:       1       1 "^From:.*@\/[^@<>  ]+"
    procmail: Score:       0       1 "^Message-Id:.*@()namebrandwigs\.com\>"
    procmail: Score:       0       1 "^Reply-To:.*@()namebrandwigs\.com\>"
    procmail: Assigning "LASTFOLDER=/dev/null"
    procmail: Opening "/dev/null"
     Subject: drone with new features
      Folder: /dev/null                            1373
    

    一个具体的问题是这不允许子域命中。Message-id: <[email protected]>允许发件人并不难,From: real name <[email protected]>但相反的情况要棘手得多,因为在一般情况下,您无法真正知道From: sender <[email protected]>域名是labels.here(例如在.com和.frTLD 中)还是many.labels.here(例如在.co.uk等.com.au顶级域名)甚至更长(视情况而定)k12.place.name.us和日本的一些县等)。

    更详细地说,为第一个配方行上的第一个命中1^0分配一个1分数,而不是为额外的命中分配额外的分数。令牌从匹配的字符串中\/捕获它之后的字符串,即@在标题中最后一个符号之后的所有内容。然后在以下配方行中使用该MATCH变量来引用此捕获的字符串;该语法$\MATCH产生一个与文字字符串匹配的正则表达式转义模式。随后的配方有一个$标志告诉 Procmail 将任何变量(即$MATCH)插入到配方条件中,并有一个-1^0评分指令为条件的第一次命中减去一个,如果再次匹配则什么也不做。

    手册页解释了所有这些结构,但可能相当密集;或许还可以查看更密集的Procmail 快速参考,但或许也可以更快地阅读和理解。

    我将此作为单独的答案发布,以免将此处的内容与我的其他答案混淆,这基本上试图阻止您仅使用 Procmail 创建自己的垃圾邮件过滤器。

    • 1

相关问题

  • 将 Microsoft Outlook 仅链接到 SMTP 服务器而不是 IMAP/POP

  • 这封电子邮件是如何编码的?

  • 将电子邮件发送到 gmail,以便将其添加到日历中

  • SPF 类型 ptr 不鼓励?那我应该用什么?

  • 为什么 Thunderbird 不会完全删除电子邮件?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve