[Rspamd-Users] Control rspamd depending on subject content

Andreas rspamd at linuxmaker.com
Thu Feb 29 18:06:25 UTC 2024


Am Donnerstag, 29. Februar 2024, 18:19:22 CET schrieb G.W. Haywood:
> Hi there,
> 
> On Thu, 29 Feb 2024, Andreas wrote:
> > ... /etc/rspamd/local.d/maps.d/banned_subjects.map:
> > 
> > /*recipe-for-egg*/ BLOCK_SUBJECT:4.5
> 
> You haven't used the 'i' modifier in the regexes which you've shown
> to make them case insensitive.  That may be deliberate, but most of
> the time I use it in, er, case the spammers use the 'shift' keys.
> 
> Be aware of the rules for constructing regexes.  They're a bit quirky.
> Just as the character '*' is special in filename globs, it's special
> in regexes too, but in a different way.  In a filename glob it more or
> less means "anything".  In a regex, unless it is 'escaped', it means
> "match if the character immediately preceding the asterisk is repeated
> zero or more times".  I'm not sure your regex will do what you want it
> to do.  Perhaps you mean something like
> 
> /.*recipe-for-egg.*/
> 
> There are plenty of regex tutorials on the Web, but when you search do
> be aware that there are different types of regex:
> 
> https://en.wikipedia.org/wiki/Regular_expression#Syntax
> 
> They are mostly somewhat similar, with enough differences to make life
> interesting if you use more than one kind of them.  The kind used by
> rspamd is called "Perl Compatible Regular Expressions" (usually PCRE).
> Perl's regexes are IMNSHO the best to use for more or less anything.
> Avoid POSIX regexes if you can - I use them a lot and I wish I didn't
> have to.
> 
> Even though rspamd uses PCRE, it has extended the syntax for its own
> purposes.  The rspamd extensions let you specify exactly where to look
> in the message for the match so it's much easier to avoid accidentally
> matching something that you didn't mean to match - and it's also a lot
> more efficient in terms of computing resources of course, you could be
> searching just a single line instead of a huge image.  Look at
> 
> https://rspamd.com/doc/modules/regexp.html#regular-expressions
> 
> which shows you how you can identify with very good granularity the
> part or parts of the message which you want to search.  For example
> the 'Subject' header you could use
> 
> Subject=/egg/i{header}
> 
> looks *only* in the Subject header for the string ('egg' or 'Egg' or
> 'EGG' or 'eGG' or...).
> 
> Header field names are case insensitive according to the RFCs.
> 
> > However, emails with “info prescription-free pharmacy” are still
> > allowed through.
> 
> Maybe I'm missing something here but I think you need to show us more
> of your config and generally give more details.  Which part of the
> message are you searching for the text?  Is the search case sensitive?
> 
> This link might help:
> 
> https://jeffknerr.github.io/rspamd/regex/multimap/2021/03/02/rspamd-multimap
> -regex-examples.html
> 
> it was just a random result from my search using 'startpage.com' (the
> Google front end which I prefer) for
> 
> "rspamd regex examples"
> 
> It looked like it made sense and the guy had made it work for him.  I
> can't vouch for it, with more searching time I'm sure you could do a
> lot better.
> 
> > I would also be interested in the syntax
> > “map = “file:///etc/rspamd/local.d/maps.d/banned_subjects.map”;”
> > must be or whether
> > “map = “/etc/rspamd/local.d/maps.d/banned_subjects.map”;”
> > correct is?
> 
> The use of both is shown at
> 
> https://rspamd.com/doc/modules/multimap.html#principles-of-work
> 
> Using a URI instead of using a file path changes the way in which the
> content is accessed.  If there's no compelling reason to use a URI, I
> would always use the simpler file path.
> 
> Have you used
> 
> rspamadm configtest
> 
> to check your configuration?


Thanks to you,

that’s 
postfix/cleanup[2579711]: A196112007E: milter-reject: END-OF-MESSAGE from mail-
lj1-x236.google.com[2a00:1450:4864:20::236]: 5.7.1 Matched map: BLOCK_SUBJECT

what I want to see.
True, sometimes the devil is in the details. I overlooked that with the dots 
in the regexes.

The note with the variables for the path is also more my thing. In the docs 
and even in the config files
/* Example setup
sender_from_whitelist_user {
           type = "from";
           filter = "email:user";
           map = "file:///tmp/from.map";
           symbol = "SENDER_FROM_WHITELIST_USER";
           action = "accept"; # Prefilter mode
}*/
""file://...." is favored instead.
Anyway, thank you very much for your feedback.

Best regards

Andreas




More information about the Users mailing list