Sign In | Sign Out | Mailing Lists | Unsubscribe or Change Settings | Help |
OpenBSD Mailing List Server
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = configset listname bounce_rules <<TAG [VALUE LINES] TAG - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Default Value : no default Data Type : bounce_rules Category : bounce Password Notes: Visible only with password. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = EXAMPLE: configset listname bounce_rules <<ENDTAG remove-noprobe-quiet $consecutive > 40 ignore ALL ENDTAG The bounce_rules setting determines how error messages due to delivery failures should be processed. Each rule consists of at least two lines. On the first line are one or more actions, separated by commas. On the second and succeeding lines are conditions under which the actions occur. Blank lines are used to separate rules. When a bounce message is received, Majordomo first takes it apart and extracts the address of the user who is bouncing messages. Statistics are then generated, and then the bounce_rules are consulted to see what action should be taken. Currently there are four basic actions (inform is the default): ignore - do nothing; do not send a bounce notice to the owners and perform no action on the list of subscribers. (Statistics are still generated as appropriate.) inform - send a bounce notice to the owners, but leave the bouncing user on the list. remove - send a bounce notice to the owners, and remove the user from the list. reason - specify a reason that a particular action was taken. There are several modes for the remove action. By default, the list owners are sent a notice of the bounce (as with the inform action) and the bouncing user is sent one final, unique test message and if it bounces then the user is removed. The remove-consult action will, after the test message has bounced, send a consultation token to the list owners instead of immediately removing the user. If this token is accepted, then the user is removed. The remove-noprobe action will immediately remove the user, without sending the probing test message to verify that the user is indeed bouncing. This action will also cause the bouncehandler-unsubscribe shell hook to be run. See "help shell_hook" for more details. The remove-noprobe-consult action is also valid; it causes the owners to be consulted but no probing test message to be sent to the bouncing user. Finally, "quiet" mode (i.e., remove-consult-quiet, remove-noprobe-quiet, remove-noprobe-consult-quiet) will prevent the bounce notice from being sent to the list owners. The owners will still receive a consultation token if "consult" mode is used. If the bouncing user is unsubscribed, the owners will still receive an "inform" notice, subject to the inform configuration setting. The bounce message is sent to the e-mail addresses in the bounce_recipients configuration setting, or to the list owners if that setting is empty. The variables currently recognized are: failure: This is true if the bounce indicates a failure. warning: This is true if the bounce indicates a warning. Warnings do not generate statistics (i.e. they don't count as bounced messages). You generally want to ignore them (and the default is to do so) but you can inform the owner as well. addr: The bouncing address, stripped of comments. fulladdr: The bouncing address, with all comments left in. host: The host portion of the bouncing address. days_since_subscribe: The number of days since the user joined the list. You can use this to perhaps set a lower threeshold for new subscribers, or a higher one for long-time subscribers. digest: If the user is subscribed and receives messages in a digest, this variable will contain the name of the digest. Otherwise, it will contain an empty string. consecutive: The number of consecutive messages bounced. This records the length of the most recent consecutive run of bounced messages. So if messages 1,2,3,5 and 6 bounce, $consecutive is 2. Use this to detect when an address is bouncing a long run of messages. consecutive_days: The length in days of the most recent consecutive run of bounced messages. In the above example, if message 5 bounced at noon on Wednesday and message 6 bounced at noon on Friday, $consecutive_days would be 2. Use this in conjunction with $consecutive on high traffic lists to detect when an address is bouncing every message sent to it and it has been doing so for some period of time. (In high traffic lists, or lists where traffic is bursty, testing $consecutive alone might not give you much useful information.) For example: # Remove users after they have bounced at least 50 consecutive messages # over five days remove $consecutive >= 50 && $consecutive_days >= 5 day: The number of bounces in the last 24 hours. week: The number of bounces in the last 7 days. month: The number of bounces in the last 30 days. You can use $day, $week and $month if you want to set a threshold for the number of bounces in some time period without requiring that they be consecutive. bouncedpct: The percentage of messages which have bounced. This is calculated from the lowest and highest sequence numbers of bounced messages and the count of numbered bounced messages: (highest - lowest +1) / count. diagnostic: The bounce diagnostic. Majordomo tries to extract from each bounce a maningful error message. You can match against it here if you want to do perform special handling. This will contain the string "unknown" if no diagnostic could be extracted. The use of these variables in comparisons is described in the "help configset_access_rules" and "help access_variables" documents. Here's an in-depth example. (Please note that providers like AOL seem to randomly change their bounce formats and error messages, so you should always make sure that matches against $diagnostic are doing what you think they are). # When AOL says a user doesn't exist, drop it immediately remove-noprobe $host =~ /aol.com/ && $diagnostic =~ /user unknown/i # Remove all users bouncing enough messages over three days, but not for # "mailbox full" errors, because we want to be more lenient with them remove, reason="Over 20 consecutive 'mailbox full' bounces" $consecutive > 20 && $consecutive_days > 3 && $diagnostic !~ /mailbox full/i # Now deal with long consecutive runs that the above rule didn't match remove, reason="Over 100 consecutive bounces" $consecutive > 100 && $consecutive_days > 7 # Digests are posted less often than individual messages, so make # the consecutive bounce limits for digest subscribers more # restrictive, except for the "hourly" digest. remove $consecutive > 15 && $digest && $digest != "hourly" # Deal with users bouncing lots of messages but not ever building up a # big consecutive run. Consult the owner once the probe fails. remove-consult $month > 200 # Inform the owner when we start seeing more than just a few bounces inform $day > 5 # Don't bother the owner otherwise ignore ALL Probe Messages A bounce probe usually consists of two parts, the "bounceprobe" file and an attachment containing the error message. To send a probe without the error message attached, use the "notify" action to disable attachments. For example, the following rule would cause a probe without the attachment to be sent for every bounce: remove, notify=(attach=0) ALL Comments It is possible to use comments before, between, and after the individual rules, but not within rules. Comments are lines that begin with a '#'. See Also: help admin_subscribers help configset_access_rules help configset_bounce_max_age help configset_bounce_max_count help configset_bounce_probe_frequency help configset_bounce_probe_pattern help configset_bounce_recipients help configset_inform help shell_hook This is the "configset_bounce_rules" 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 |