مرشِّح بريد مزعج لـ Postfix

يرشّح Spam Scanner خادم Postfix في نحو خمس دقائق. يعمل كـ milterمرشِّح البريد: بروتوكول من Sendmail، يستخدمه Postfix أيضًا، يتيح لبرنامج منفصل فحص كل رسالة أثناء جلسة SMTP.، فيسأله Postfix عن كل رسالة أثناء جلسة SMTP ويستطيع رفض البريد المزعج قبل قبوله.

التثبيت والتشغيل#

Shell
npm install --global spamscanner
spamscanner milter --port 7831 --auth --subject-tag "[SPAM]"

يفحص --auth كلًا من SPFSender Policy Framework: سجل DNS يسرد الخوادم المسموح لها بإرسال البريد باسم نطاق. وDKIM وDMARC وARC؛ ويَسِم --subject-tag البريد المزعج في العنوان. تحصل كل رسالة على ترويسات X-Spam-Flag وX-Spam-Score وX-Spam-Status وX-Spam-Action، وتُحذف أولًا أي ترويسة X-Spam-* وضعها المرسل.

اربط Postfix#

INI
# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_protocol = 6
milter_default_action = accept
Shell
sudo postfix reload

يسمح milter_default_action = accept بمرور البريد دون ترشيح إذا كان الـ milter متوقفًا؛ أما tempfail فيطلب من المرسلين إعادة المحاولة بدلًا من ذلك.

ارفض البريد المزعج أثناء جلسة SMTP#

Shell
spamscanner milter --port 7831 --auth --reject

تُرفض الرسائل التي تبلغ عتبة الرفض (15 نقطة) بالرد 451 4.7.1 Message rejected as spam. الرد 451 مؤقت: يحتفظ المرسل بالرسالة ويعيد المحاولة، فالقرار الخاطئ يكلّف تأخيرًا لا رسالة مفقودة. بعد أن تبدو النتائج صحيحة، يجعل --reject-code 550 الرفض دائمًا.

دون milter#

يعمل مرشِّح المحتوى بعد أن يقبل Postfix الرسالة: يمرّرها Postfix عبر أنبوب إلى spamscanner filter، الذي يضيف الترويسات ويعيدها. لا يُرفض أي شيء أبدًا أثناء الجلسة، والفشل يؤجل التسليم دائمًا بدل ارتداد البريد. إعداد مرشِّح المحتوى

البريد المزعج إلى Junk#

مع Dovecot، تنقل قاعدة Sieve البريد الموسوم:

Text
require ["fileinto"];
if header :is "X-Spam-Flag" "YES" { fileinto "Junk"; stop; }

مُختبَر مع Postfix حقيقي#

تشغّل الاختبارات الشاملة للمشروع Postfix مع الـ milter ومرشِّح المحتوى: يُسلَّم البريد المرغوب مع الترويسات وتُحذف ترويسة X-Spam-Flag المزوّرة، ويُوسم البريد المزعج، ويُرفض GTUBEGeneric Test for Unsolicited Bulk Email: سلسلة نصية ثابتة يعاملها كل مرشِّح بريد مزعج على أنها مزعجة، لأغراض الاختبار. بالرد 550 أثناء جلسة SMTP.

التالي: دليل Postfix وSendmail الكامل، مع وحدة systemd وINPUT_MAIL_FILTER الخاص بـ Sendmail.

عدّل هذه الصفحة على GitHub · Markdown ·