I just ran a quick test on SA 4.0.0 and your rules work for me: dbg: rules: ran header rule JR_LOWER_SUBJECT ======> got hit: "subject: " The ALL:raw pseudo-header returns the unmodified header section as a multi-line string so the /m modifier is required to make "^" match the beginning of a line. Thanks Kent On Sun, Nov 17, 2024 at 07:50 PM, Jared Hall via dev <dev@spamassassin.apache.org> wrote: I am looking for some input on the following rules used on SA v3.4.6 header JR_LOWER_TO ALL:raw =~ /^to:s/m header JR_LOWER_FROM ALL:raw =~ /^from:s/m header JR_LOWER_SUBJECT ALL CAUTION: External email from: dev@spamassassin.apache.org Use caution before clicking on links or opening attachments. Protection by MXGuardian (https://mxguardian.net) I am looking for some input on the following rules used on SA v3.4.6 header JR_LOWER_TO ALL:raw =~ /^to:s/m header JR_LOWER_FROM ALL:raw =~ /^from:s/m header JR_LOWER_SUBJECT ALL:raw =~ /^subject:s/m Although these have served me well, I do not think they will work on SA v4.0.X since the ALL pseudo-header returns all headers folded. Is another pragmatic workaround available? The "m" multi-line modifier doesn't throw any errors in 4.X.X, but seems superfluous. Is this just "do-nothing" deprecated with the ALL pseudo-header? Thanks,
-- Jared Hall ja...@jaredsec.com (mailto:ja...@jaredsec.com) Available for hire.