diff options
| author | bwarsaw | 2000-02-19 03:41:58 +0000 |
|---|---|---|
| committer | bwarsaw | 2000-02-19 03:41:58 +0000 |
| commit | d2629e5926401d9bf7eb5ed94752bea9204d8058 (patch) | |
| tree | f94e447fd612844bbf2c16dd2fa9392edd01fec0 | |
| parent | 3437fef258f79a70d0d342fea73e0d48e18a66af (diff) | |
| download | mailman-d2629e5926401d9bf7eb5ed94752bea9204d8058.tar.gz mailman-d2629e5926401d9bf7eb5ed94752bea9204d8058.tar.zst mailman-d2629e5926401d9bf7eb5ed94752bea9204d8058.zip | |
Autoresponder: New mixin class which contains attributes and
configuration information for the new replybot functionality. Mailman
can now send automatic responses to mailing list posts or -admin
emails (-request autoreplies aren't necessary since that's a bot
anyway). The following new configuration attributes control this
feature:
autorespond_postings - boolean which controls autoreplies to mailing
list posts.
autorespond_admin - same as above the -admin address.
autoresponse_postings_text - the mailing list post autoreply
text. This is %(string)s interpolated with a dictionary as
described below.
autoresponse_admin_text - same as above for the -admin address.
autoresponse_graceperiod - the number of days between automatic
responses to the same email author. This variable controls both
autoresponses. If this is <= 0, then there is no grace period.
The following non-configurable attributes store the state:
postings_responses - a dictionary of email addresses (lower cased)
to the time.time() that the grace period expires.
admin_responses - same as above for the -admin address.
autoresponse_postings_text and autoresponse_admin_text are string
interpolated with the following dictionary:
listname - the mailing list's "real_name"
listurl - the list's "listinfo" url
requestemail - the list's -request address
adminemail - the list's -admin address
We should probably add others.
| -rw-r--r-- | Mailman/Autoresponder.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Mailman/Autoresponder.py b/Mailman/Autoresponder.py new file mode 100644 index 000000000..8fe22f26f --- /dev/null +++ b/Mailman/Autoresponder.py @@ -0,0 +1,70 @@ +# Copyright (C) 1998 by the Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +"""MailList mixin class managing the autoresponder. +""" + +from Mailman import mm_cfg + + + +class Autoresponder: + def InitVars(self): + # configurable + self.autorespond_postings = 0 + self.autorespond_admin = 0 + self.autoresponse_postings_text = '' + self.autoresponse_admin_text = '' + self.autoresponse_graceperiod = 90 # days + # non-configurable + self.postings_responses = {} + self.admin_responses = {} + + def GetConfigInfo(self): + return [ + 'Auto-responder characteristics.', + + ('autorespond_postings', mm_cfg.Toggle, ('No', 'Yes'), 0, + 'Should Mailman send an auto-response to mailing list posters?'), + + ('autoresponse_postings_text', mm_cfg.Text, ('6', '30'), 0, + """Auto-response text to send to mailing list posters. +Python %(string)s interpolation is performed on the text with the following +key/value pairs.<p> +<b>listname</b> <em>gets the name of the mailing list</em><br> +<b>listurl</b> <em>gets the list's listinfo URL</em><br> +<b>requestemail</b> <em>gets the list's -request address</em><br> +<b>adminemail</b> <em>gets the list's -admin address</em>"""), + + ('autorespond_admin', mm_cfg.Toggle, ('No', 'Yes'), 0, + 'Should Mailman send an auto-response to emails sent to the ' + '-admin address?'), + + ('autoresponse_admin_text', mm_cfg.Text, ('6', '30'), 0, + """Auto-response text to send to -admin emails. +Python %(string)s interpolation is performed on the text with the following +key/value pairs.<p> +<b>listname</b> <em>gets the name of the mailing list</em><br> +<b>listurl</b> <em>gets the list's listinfo URL</em><br> +<b>requestemail</b> <em>gets the list's -request address</em><br> +<b>adminemail</b> <em>gets the list's -admin address</em>"""), + + ('autoresponse_graceperiod', mm_cfg.Number, 3, 0, + '''Number of days between auto-responses to either the mailing +list or -admin address from the same poster. Set to zero (or negative) for +no grace period (i.e. auto-respond to every message).'''), + + ] |
