.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Mail::SpamAssassin::Plugin::ReplaceTags 3" .TH Mail::SpamAssassin::Plugin::ReplaceTags 3 2024-09-01 "perl v5.40.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Mail::SpamAssassin::Plugin::ReplaceTags \- tags for SpamAssassin rules .PP The plugin allows rules to contain regular expression tags to be used in regular expression rules. The tags make it much easier to maintain complicated rules. .PP Warning: This plugin relies on data structures specific to this version of SpamAssassin; it is not guaranteed to work with other versions of SpamAssassin. .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 1 \& loadplugin Mail::SpamAssassin::Plugin::ReplaceTags \& \& replace_start < \& replace_end > \& \& replace_tag A [a@] \& replace_tag G [gk] \& replace_tag I [il|!1y\e?\excc\excd\exce\excf\exec\exed\exee\exef] \& replace_tag R [r3] \& replace_tag V (?:[vu]|\e\e\e/) \& replace_tag SP [\es~_\-] \& \& body VIAGRA_OBFU /(?!viagra)+*+*+*+*+*+/i \& describe VIAGRA_OBFU Attempt to obfuscate "viagra" \& \& replace_rules VIAGRA_OBFU .Ve .SH "RULE DEFINITIONS AND PRIVILEGED SETTINGS" .IX Header "RULE DEFINITIONS AND PRIVILEGED SETTINGS" .IP "replace_tag tagname expression" 4 .IX Item "replace_tag tagname expression" Assign a valid regular expression to tagname. .Sp Note: It is not recommended to put quantifiers inside the tag, it's better to put them inside the rule itself for greater flexibility. .IP "replace_pre tagname expression" 4 .IX Item "replace_pre tagname expression" Assign a valid regular expression to tagname. The expression will be placed before each tag that is replaced. .IP "replace_inter tagname expression" 4 .IX Item "replace_inter tagname expression" Assign a valid regular expression to tagname. The expression will be placed between each two immediately adjacent tags that are replaced. .IP "replace_post tagname expression" 4 .IX Item "replace_post tagname expression" Assign a valid regular expression to tagname. The expression will be placed after each tag that is replaced. .IP "replace_rules list_of_tests" 4 .IX Item "replace_rules list_of_tests" Specify a list of symbolic test names (separated by whitespace) of tests which should be modified using replacement tags. Only simple regular expression body, header, uri, full, rawbody tests are supported. .IP "replace_start string" 4 .IX Item "replace_start string" .PD 0 .IP "replace_end string" 4 .IX Item "replace_end string" .PD String(s) which indicate the start and end of a tag inside a rule. Only tags enclosed by the start and end strings are found and replaced.