This question already has an answer here:

I'm trying to REJECT an email with a certain phrase in the SUBJECT (e.g. "quota limit") using Postix 2.9.6. Following the postfix's documentation I realized postfix handles this info by checking the header. So header_checks is the attribute designated for checking headers in the email. Knowing this I added this line in my main.cf file:

header_checks = regexp:/etc/postfix/acl/header_checks/regexp

and the regexp:/etc/postfix/acl/header_checks/regexp fle contains:

/^Subject.*quota limit.*/  REJECT "SPAM ID:HeaderChecks01  Possible SPAM"

Following I validated the setting using (see quota limit in the subject):

postmap -q "Subject:squota limitjk" regexp:/etc/postfix/acl/header_checks/regexp

and I got:

REJECT "SPAM ID:HeaderChecks01  Possible SPAM"

It works!! Any message with this quota limit phrase in the subject should be automatically REJECTED. The thing is it's not. Then I checked the official documentation for postfix regarding to header_checks in here: header_checks . Apparently I'm doing things right. Why isn't this working?? Before posting this I noticed there are previous questions in this great site (serverfault) regarding this very same problem and all of them without an accurate answer. You can check them here: Postfix header_checks not working and Postifx header_checks not working

For a more close-to example I copied to a local file a piece of plain text from a real (not real domain included) SPAM email and did the same postmap -q check and got the same result. So doesn't seems to be a regexp problem at all. The text is this (see quota limit in the subject):

Reply-To: j.p.monfort.accomplish.delivery@timetelegram.info
Message-ID: <0f12fc934ada9939316f6986001319ff@timetelegram.us>
To: <ielena@udomain.com>
Subject:=?windows-1252?Q?A_Spequota limitiversi_Aria_Pro._cia?=
<asdqtext to fill>

Last but not least I tried changing header_checks by smtp_header_checks, mime_header_checks, smtp_mime_header_checks, milter_header_checks and even nested_header_checks (just in case) and got nothing. I also checked for a receive_override_options param in the master.cf file and couldn't find it so there is no header_checks overridden.

To point out: Below header_checks I have smtp_body_checks and any email with the phrase "quota limit" is actually being rejected without any problem. It's only this attribute per se.

marked as duplicate by Michael Hampton Mar 17 '17 at 22:42

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.


The correct solution to my post lies here: -o receive_override_options=no_header_body_checks

I just added the line -o receive_override_options=no_header_body_checks to my master.cf file without a comment and voilá. So far I have being doing what I wanted to in the beginning. I guess this entire post should be deleted or marked as duplicated.

Not the answer you're looking for? Browse other questions tagged or ask your own question.