قم بتصفية البريد الإلكتروني من خلال احتواء اسمي في "إلى" باستخدام procmail

StackOverflow https://stackoverflow.com//questions/11689667

سؤال

باستخدام procmail، أريد نقل أي بريد وارد لا يحتوي على اسمي ("John Doe") في الحقل "إلى" إلى المجلد "Junk".

ومع ذلك، لا يبدو أن القاعدة التالية لها أي تأثير، على الرغم من أنني قمت باختبار التعبير العادي بدقة في تطبيقات الاختبار عبر الإنترنت للتأكد من مطابقته لما ينبغي:

# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/

في حال كان الأمر مثيرًا للاهتمام، فإن ملف قاعدة procmail بأكمله هو:

# Filter mail using SpamAssassin
:0fw: spamassassin.lock
* < 256000
| /usr/bin/spamassassin

# Filter spam based on "Spam-Level"
:0:
* ^X-Spam-Level: \*\*
.Junk/

# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/

لماذا لا تعمل القاعدة الخاصة بي؟

شكرا لأية مساعدة!

هل كانت مفيدة؟

المحلول

نظرًا لأن عمليات البحث عن Perl ليست جزءًا من ذخيرة Procmail الخاصة بالتعبير العادي.

جرب هذا بدلا من ذلك.

:0
* ! ^To:.*John[  ]+Doe
.Junk/

يجب أن تكون المسافة البيضاء داخل [ ] عبارة عن مسافة وعلامة تبويب؛ال \s Perlism غير مدعوم أيضًا.

قد يكون من الأفضل لك استخدام عنوان بريدك الإلكتروني كمعيار للتصفية، وربما استخدام ^TO_ ماكرو خاص لتغطية نسخة:إلخ.لا تزال غير قادر على التعامل مع نسخة مخفية الوجهة:لحسابك طبعا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top