Hi,
OK, but the REJECT 3 works fine, so I think it is an issue with the if, but I dont see why. Franck ------------------------------------------- M: +33 6 6042 7249 E: m...@civis.net De : owner-postfix-us...@postfix.org [mailto:owner-postfix-us...@postfix.org] De la part de Jeroen Geilman Envoyé : dimanche 13 février 2011 23:49 À : postfix-users@postfix.org Objet : Re: Issue with header_checks On 02/13/2011 10:33 PM, Franck MAHE wrote: Hello, Ive the following in main.cf header_checks = regexp:/etc/postfix/regexp_table My postfix release is 2.3.8 Ive the following in my header_checks regex table: # MAL FORMATED EMAIL ADDRESS /^From:.*\.@.*/ REJECT "1 - Your Email address is not compliant with RFC, Go Away" /^From:.* <mailto:.*\.\..*@.*> <.*\.\..*@.*>/ REJECT "2 - Your Email address is not compliant with RFC, Go Away" /^From:.*<.*(\[|\]|\(|\)|\`|\;|\,|\^|\#|\:|\||\\|\@|<|>|\/|\!|\ |\$|"|"|\%|\&|').*@.*>/ REJECT "3 - Your Email address is not compliant with RFC, Go Away" if !/^From:.* <mailto:.*@.*> <.*@.*>/ /^From:.*(\[|\]|\(|\)|\`|\;|\,|\^|\#|\:|\||\\|\@|<|>|\/|\!|\ |\$|"| <mailto:|\%25|\&|')@.*/ REJECT> "|\%|\&|')@.*/ REJECT "4 - Your Email address is not compliant with RFC, Go Away" endif All is fine for REJECT 1, 2 & 3, however when the From field is only From: u...@domain.tld, the REJECT 4 is not taken into account, ie the REJECT 4 seems not to be tested. So, it seems that the if endif block is not working. Do you have any idea to solve that? Franck ------------------------------------------- E: m...@civis.net From: u...@domain.tld does not match /^From:.*(\[|\]|\(|\)|\`|\;|\,|\^|\#|\:|\||\\|\@|<|>|\/|\!|\ |\$|"|"|\%|\&|')@.*/ The regex requires the locapart to end with one of the listed characters; your example does not, it is perfectly valid. I would also implore you to use character classes to make this less unreadable: /^From:.*[[\]()`;,\^#:|\\@<>/! $"%&']@.*/ In a regex character class, almost all characters lose their special meaning, so they don't have to be escaped. But as stated above, requiring one of these characters between the localpart and the @ sign will not match the valid address you gave as an example. -- J.