Sign In | Sign Out | Mailing Lists | Unsubscribe or Change Settings | Help |
OpenBSD Mailing List Server
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = configset GLOBAL admin_body <<TAG [VALUE LINES] TAG - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - configset listname admin_body <<TAG [VALUE LINES] TAG - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Default Value : /\bcancel\b/i ... (only first item is shown) Data Type : taboo_body Category : moderate Password Notes: Visible only with password. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = EXAMPLE: configset GLOBAL admin_body << ENDTAG /subscribe/ /^set\b/i 1,1,body /X-Loop: / 0,1,xloop ENDTAG If any line of the body of a posted message matches one of these patterns, the message will be sent to the list moderators for review. The following information also applies to the taboo_body setting; just substitute the prefix "taboo_" wherever you see "admin_". By default, patterns in the admin_body setting are checked against the first 10 lines of the message body, whereas patterns in the taboo_body setting are checked against the whole body. The following information also applies to the "admin_headers" and "taboo_headers" settings, but the "nn" line number limit is not supported for these settings. For every message that is posted to a mailing list, the message is compared to both the list's admin_body patterns and the GLOBAL admin_body patterns. All of the patterns are used for comparisons, regardless of the number of matches. When a match is found, the value of an access variable corresponding to that match is changed. By default, the name of the access variable is the same as the name of the configuration setting. For example, a match against a pattern in the list's "admin_body" setting would increase the value of the "admin_body" access variable. See "help configset_access_rules" and "help access_variables" for an explanation of how to use access variables. Access variable names for GLOBAL patterns have a "global_" prefix. For example, when a message matches a pattern in the GLOBAL "admin_headers" setting, the value "global_admin_headers" access variable will be changed. Pattern Syntax Complete syntax of an admin_headers line: !pp ss,vv Complete syntax of an admin_body line: !pp nn,ss,vv where pp - is a Majordomo pattern (see "help patterns" for details) ! - is an optional invert flag (to look for missing lines) nn - is an optional number of lines to check (or 0 to check the whole body) ss - is an optional severity score for use in access_rules vv - is an optional variable name for use in access_rules and the space in "pp nn" is required unless "nn" is not specified, and the commas in "nn,ss,vv" are required if "ss" or "vv" are specified, and "ss" cannot be specified without specifying "nn" and "vv" cannot be specified without specifying "ss" An example may help explain the syntax: !/(nasty|word)/ 10,20,naughty || | | | | | || | | | | "vv" - variable match name || | | | | |+-----|-------+ | "ss" - match severity/score | | | | | | | "nn" - number of lines to match | | | | | pattern delimiters (start and end of "pp") | | | pattern appropriate for the delimiters (middle of "pp") | invert flag (immediately before pattern, if used) ! = invert flag: if not used, success is when the pattern does match within "nn" lines (i.e. the pattern is disallowed in every message) if present, success is when the pattern does NOT match in "nn" lines (i.e. the pattern is required in every message) pp = pattern: see "help patterns" for details a normal Majordomo pattern of the type indicated by the delimiters used ('/' Perl regexp with auto-escaped @, '%' csh/dos, '"' exact substring) nn = number of lines to examine: if used, only the first "nn" lines of the message will be compared. - '0' causes checking of entire message instead of just a few lines - negative values are nonsense and not allowed - defaults to '0' for taboo_body matches and '10' for admin_body if not used, you cannot specify a score or a variable match name ss = match severity/score: if used, a number (possibly negative) indicating the score to add to the appropriate access variable when a match occurs - the total score of a message can be checked in access_rules - the default score is '10' if not used, you cannot specify a variable match name vv = variable match name the name of the access variable that is changed by a match - defaults to 'body' for admin_body and taboo_body - defaults to 'headers' for admin_headers and taboo_headers - the "admin_" or "taboo_" prefix will be added to it automatically. Variable names with all capital letters will not cause a message to be moderated by default when the variable has a nonzero score. What Happens When a Match is Found When you use lower case match variable names, the default action when a message matches an "admin_body" line is for the post to be sent to the list moderators for confirmation. The confirmation message will show both the pattern that matched and the text that it matched. This will occur if the sum of the scores is non-zero (positive or negative). If you use a "vv" variable name in all capitals, the score is kept for that pattern, but by default the message will not be moderated if the score is not zero. You can then write access rules that make use of that access variable, if you wish. The final score for a variable is the sum of all the "ss" values for all of the "vv" variables which had matching rules. This gets a bit tricky, because lines are checked one at a time. You can have several rules match on the same line, but each rule can match only once per line. For example, if a message contains only these two lines: a b c c d d e f then the admin_body pattern "/a/" will match once and increment "vv" by the amount of "ss" just once. On the other hand, the pattern "/c/" will increment "vv" twice since it matches a portion of two lines. Finally, the pattern "/d/" will increment "vv" only once because it matches only one line, regardless of how often the pattern appears on that line. The key is how many lines match the pattern, where the pattern is taken as a whole and the line is taken as a whole. The pattern "/[a-z] [a-z]/" will increment "ss" twice (once per line) as will the pattern "/(c|d)/". The following access variables will always be defined: $global_admin_body $global_admin_headers $global_taboo_body $global_taboo_headers $admin_body $admin_headers $taboo_body $taboo_headers $admin $taboo The values of the first four variables are determined by the patterns in the admin_body and related configuration settings for the GLOBAL pseudo-list. The values of the next four variables are determined by an individual mailing list's settings. The "admin" value is equal to the sum of the other four "admin" variables, plus the scores of any other customized "admin" variables whose names are not all capital letters. Similarly, the "taboo" value is the sum of all "taboo" variables excepting those whose names are all capitals. It is possible to disable all of the admin_body and admin_headers checks by turning off the administrivia setting. See "help configset_administrivia" for more information. It is possible to disable the GLOBAL checks using the access rules. For example, the following access rule will unset the taboo access variable if the GLOBAL taboo_headers setting provides the only taboo matches: post unset=taboo $taboo == $global_taboo_headers See "help configset_access_rules" for more information. Examples Assume in the following examples that your mailing list has the following three "admin_body" patterns: /subscribe/i /(nasty|dirty)/ 10,2,naughty /ugly/ 0,3,naughty The first pattern does not have a special variable name, so each line that it matches would cause the "admin_body" access variable to increase by 10. The second pattern will cause the "admin_naughty" variable to increase by 2 for each line that it matches. Only the first 10 lines of the message will be compared to this pattern. A message which contains the word "subscribe" anywhere in the body, but none of "nasty", "dirty", or "ugly" will have the following access variable values: $admin_body = 10 $admin_naughty = 0 If the message contains the word "subscribe" and either the word "nasty" or the word "dirty" on or before the 10th line, the following values will result: $admin_body = 10 $admin_naughty = 2 If the same message contains both the word "nasty" and the word "dirty" on the same line, the access variable values will be $admin_body = 10 $admin_naughty = 2 because the "nasty" and "dirty" matches are part of the same pattern. If you had two rules instead, /dirty/ 10,2,naughty /nasty/ 10,2,naughty then the "admin_naughty" score would be 4 in this case. If a message contains both "nasty" and "ugly" once in the first 10 lines, the access variable values would be $admin_body = 0 $admin_naughty = 5 The "nasty" match adds 2 to the score, and the "ugly" match adds 3. If a message contains both "nasty" and "ugly" on line 20 $admin_naughty == 3 because "ugly" is matched anywhere in the message but "nasty" is only matched in the first 10 lines. To repeat, the access variables for pattern matches have numeric values, containing a total score for all the body or header lines which matched, or zero if no lines matched. Eight variables are always defined, but will have zero values unless there are matching admin_body or admin_headers patterns that do not have a specified variable match name. Matching Encoded Data Using taboo_body or admin_body to look for the "begin" tag of uuencoded data may fail, if there is a content-type header, because may be is seen as part of MIME encoding. In this case, the word "begin" will not appear in the message body that Majordomo's core routines process. Please refer to "help configset_attachment_rules" for how to trap MIME attachments. For uuencoded attachments, "begin 644" or something similar does appear in the raw stream of bytes that traverse the network and show up in your mailbox file. The MIME interface Majordomo uses is smart enough to decode an attachment with Content-Transfer-Encoding: x-uuencode just like it will decode quoted-printable or base64. This is good because you can upload files even if your mailer insists on doing the uuencode thing on its attachments, or if users try to bypass your filters by doing the same thing. MIME-Tools is pretty smart; it will even try to uncompress attachments if necessary so that your filters will work. What you may find odd is that this only happens if the uuencoding is done as part of a real MIME encapsulating, with Content-Type and Content-Transfer-Encoding and the like. You can of course uuencode something and paste the raw data right into a message without any MIME stuff; _that_ will come through just as you see it and your admin_body expression trapping 'begin xxx' will match. See Also: help admin_moderate help configset_access_rules help configset_admin_headers help configset_administrivia help configset_block_headers help configset_noarchive_body help configset_noarchive_headers help configset_taboo_body help configset_taboo_headers This is the "configset_admin_body" help document for Majordomo 2, version 0.1201103110. For a list of all help documents, send the following command: help topics in the body of a message to majordomo@openbsd.org.
For assistance, please contact the openbsd.org administrators.
Sign In | Sign Out | Mailing Lists | Unsubscribe or Change Settings | Help |