Коллеги, приветствую.
Подскажите, плиз, как решить такую задачу:
Есть почтовый сервер (MTA) - postfix + amavisd-new + spamassassin + clam-av - на который идет большой поток спама. Большая часть спама отсекается postfix'ом еще на этапе подключения и не доходит до пользователей. Но часть спам-писем успешно проходят все проверки postfix'а (что не удивительно) и доходят до spamassassin'а, который начинает их блокировать не сразу (по понятным причинам). Таким образом у пользователей может за день во входящие попасть до 20 спам-писем.
Но у таких писем есть одна общая "черта": SMTP-заголовок "RCPT TO:" не совпадает с header'ом "TO:".
Вот пример такого письма:
Return-Path: <info@golemint.eu>
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.example.ru
X-Spam-Level: ***
X-Spam-Status: No, score=3.7 required=5.0 tests=BAYES_80,HTML_IMAGE_ONLY_08,HTML_IMAGE_RATIO_02,HTML_MESSAGE,HTML_SHORT_LINK_IMG_1,MPART_ALT_DIFF,RP_MATCHES_RCVD,URIBL_BLACK autolearn=no version=3.3.1
Delivered-To: user@example.ru
Received: from localhost (localhost [127.0.0.1])
by mail.example.ru (Postfix) with ESMTP id 052C0B6A395;
Thu, 10 Nov 2016 04:01:23 +0200 (EET)
X-Virus-Scanned: amavisd-new at example.ru
Received: from mail.example.ru ([127.0.0.1])
by localhost (mail.example.ru [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id fzLCPgV5Hjpr; Thu, 10 Nov 2016 04:01:22 +0200 (EET)
Received: from golemint.eu (mail.golemint.eu [85.25.243.93])
by mail.example.ru (Postfix) with ESMTP;
Thu, 10 Nov 2016 04:01:22 +0200 (EET)
Received: from golemint.eu (unknown [46.38.48.34])
by golemint.eu (Postfix) with ESMTPA id AE2782B0C21;
Thu, 10 Nov 2016 00:36:13 +0200 (EET)
Message-ID: <a5b301d23aea$7384b180$fe4e31bb@info>
Reply-To: "=?windows-1251?B?w87L08HI0s7K0SDP8O7x8uDy6PI=?=" <info@golemint.eu>
From: "=?windows-1251?B?w87L08HI0s7K0SDP8O7x8uDy6PI=?=" <info@golemint.eu>
To: <manager@kilikia21.ru>
Subject: =?windows-1251?B?3fT05ery6OLt9O7lIOvl9+Xt6OUg7/Du8fLg8ujy4A==?=
Date: Thu, 10 Nov 2016 00:36:18 +0200
--- пропущено для карткости ---
А в логах postfix'а вот такая запись:
# grep 052C0B6A395 maillog
Nov 10 04:01:23 mail postfix/smtpd[16685]: 052C0B6A395: client=localhost[127.0.0.1]
Nov 10 04:01:23 mail postfix/cleanup[21481]: 052C0B6A395: message-id=<a5b301d23aea$7384b180$fe4e31bb@info>
Nov 10 04:01:23 mail postfix/qmgr[14134]: 052C0B6A395: from=<info@golemint.eu>, size=126406, nrcpt=2 (queue active)
Nov 10 04:01:25 mail postfix/pipe[23768]: 052C0B6A395: to=<user@example.ru>, relay=maildrop, delay=2.5, delays=0.01/0/0/2.4, dsn=2.0.0, status=sent (delivered via maildrop service)
Nov 10 04:01:25 mail postfix/qmgr[14134]: 052C0B6A395: removed
То есть в "rcpt to" указан "user@example.ru" (мой настоящий ящик), а вот в "to" указан совсем другой адрес - "manager@kilikia21.ru". И таких писем среди спама прошедшего проверки postfix'а очень много.
Единственный способ, который я вижу, как отсеить этот спам, - сравнивать "TO" с "RCPT TO" и если они не совпадают, помечать как спам. Но как это реализовать, никак не соображу.
Собственно сам вопрос:
Как сравнить "TO" с "RCPT TO" и если они не совпадают, отправить письмо в спам? Можно spamassassin'ом, можно postfix'ом.