diff options
Diffstat (limited to 'Mailman/Defaults.py.in')
-rwxr-xr-x[-rw-r--r--] | Mailman/Defaults.py.in | 174 |
1 files changed, 168 insertions, 6 deletions
diff --git a/Mailman/Defaults.py.in b/Mailman/Defaults.py.in index 9aebaea2..0e376e1c 100644..100755 --- a/Mailman/Defaults.py.in +++ b/Mailman/Defaults.py.in @@ -1,6 +1,6 @@ # -*- python -*- -# Copyright (C) 1998-2012 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2015 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 @@ -111,6 +111,34 @@ AUTHENTICATION_COOKIE_LIFETIME = 0 # Form lifetime is set against Cross Site Request Forgery. FORM_LIFETIME = hours(1) +# If the following is set to a non-empty string, this string in combination +# with the time, list name and the IP address of the requestor is used to +# create a hidden hash as part of the subscribe form on the listinfo page. +# This hash is checked upon form submission and the subscribe fails if it +# doesn't match. I.e. the form posted must be first retrieved from the +# listinfo CGI by the same IP that posts it. The subscribe also fails if +# the time the form was retrieved is more than the above FORM_LIFETIME or less +# than the below SUBSCRIBE_FORM_MIN_TIME before submission. +# Important: If you have any static subscribe forms on your web site, setting +# this option will break them. With this option set, subscribe forms must be +# dynamically generated to include the hidden data. See the code block +# beginning with "if mm_cfg.SUBSCRIBE_FORM_SECRET:" in Mailman/Cgi/listinfo.py +# for the details of the hidden data. +SUBSCRIBE_FORM_SECRET = None + +# If SUBSCRIBE_FORM_SECRET is not None, this is the minimum time the user must +# take after retrieving the form before submitting it. Set to 0 to skip this +# test. +SUBSCRIBE_FORM_MIN_TIME = seconds(5) + +# Installation wide ban list. This is a list of email addresses and regexp +# patterns (beginning with ^) which are not allowed to subscribe to any lists +# in the installation. This supplements the individual list's ban_list. +# For example, to ban xxx@aol.com and any @gmail.com address beginning with +# yyy, set +# GLOBAL_BAN_LIST = ['xxx@aol.com', '^yyy.*@gmail\.com'] +GLOBAL_BAN_LIST = [] + # Command that is used to convert text/html parts into plain text. This # should output results to standard output. %(filename)s will contain the # name of the temporary file that the program should operate on. @@ -118,9 +146,13 @@ HTML_TO_PLAIN_TEXT_COMMAND = '/usr/bin/lynx -dump %(filename)s' # A Python regular expression character class which defines the characters # allowed in list names. Lists cannot be created with names containing any -# character that doesn't match this class. +# character that doesn't match this class. Do not include '/' in this list. ACCEPTABLE_LISTNAME_CHARACTERS = '[-+_.=a-z0-9]' +# Shall the user's real names be displayed along with their email addresses +# in list rosters? Defaults to No to preserve prior behavior. +ROSTER_DISPLAY_REALNAME = No + ##### @@ -204,6 +236,20 @@ WEB_VLINK_COLOR = '' # If true, forces VLINK= WEB_HIGHLIGHT_COLOR = '#dddddd' # If true, alternating rows # in listinfo & admin display +# If you wish to include extra elements in the <HEAD> section of Mailman's +# web pages, e.g. style information or a link to a style sheet, you can set +# the following. For example, to include a css style sheet reference, you +# can put in mm_cfg.py +# WEB_HEAD_ADD = """<LINK REL=stylesheet +# TYPE="text/css" +# HREF="path or URL" +# >""" +# You can specify anything that is allowed in the <HEAD> section. The default +# is to not add anything. This only applies to internally generated pages. +# For pages built from templates you can create custom templates containing +# this information. +WEB_HEAD_ADD = None + # User entered data is escaped for redisplay in web responses to avoid Cross # Site Scripting (XSS) attacks. The normal escaping replaces the characters # <, >, & and " with the respective HTML entities <, >, & and @@ -227,6 +273,17 @@ BROKEN_BROWSER_REPLACEMENTS = {'\x8b': '‹', # single left angle quote '\xbe': '¾', # > plus high order bit '\xa2': '¢', # " plus high order bit } +# +# Shall the admindb held message summary display the grouping and sorting +# option radio buttons? Set this in mm_cfg.py to one of the following: +# SSENDER -> Default to grouped and sorted by sender. +# SSENDERTIME -> Default to grouped by sender and sorted by time. +# STIME -> Default to ungrouped and sorted by time. +DISPLAY_HELD_SUMMARY_SORT_BUTTONS = No +# +# Shall the default for the admin Mass Subscription function be Invite rather +# than Subscribe? Set to Yes in mm_cfg.py to make the default be Invite. +DEFAULT_SUBSCRIBE_OR_INVITE = No @@ -528,7 +585,10 @@ NNTP_REWRITE_DUPLICATE_HEADERS = [ # footer or scrubbing attachments or even reply-to munging can break these # signatures. It is generally felt that these signatures have value, even if # broken and even if the outgoing message is resigned. However, some sites -# may wish to remove these headers by setting this to Yes. +# may wish to remove these headers. Possible values and meanings are: +# No, 0, False -> do not remove headers. +# Yes, 1, True -> remove headers only if the list's from_is_list setting is 1. +# 2 -> always remove headers. REMOVE_DKIM_HEADERS = No # All `normal' messages which are delivered to the entire list membership go @@ -560,6 +620,7 @@ GLOBAL_PIPELINE = [ # (outgoing) path, finally leaving the message in the outgoing queue. 'AfterDelivery', 'Acknowledge', + 'WrapMessage', 'ToOutgoing', ] @@ -844,6 +905,12 @@ BAD_SHUNT_ARCHIVE_DIRECTORY = None # affects both message pickles and MailList config.pck files. SYNC_AFTER_WRITE = No +# This is the name used for the mailmanctl master lock file. In a clustered +# load sharing environment with a shared 'locks' directory, it is desirable +# to have separate locks for each host mailmanctl. This can be used to enable +# that. +MASTER_LOCK_FILE = 'master-qrunner' + ##### @@ -942,6 +1009,27 @@ USER_FRIENDLY_PASSWORDS = Yes MEMBER_PASSWORD_LENGTH = 8 ADMIN_PASSWORD_LENGTH = 10 +# The following headers are always removed from posts to anonymous lists as +# they can reveal the identity of the poster or at least the poster's domain. +# +# From:, Reply-To:, Sender:, Return-Path:, X-Originating-Email:, Received:, +# Message-ID: and X-Envelope-From:. +# +# In addition, Return-Receipt-To:, Disposition-Notification-To:, +# X-Confirm-Reading-To: and X-Pmrqc: headers are removed from all posts as +# they can be used to fish for list membership in addition to possibly +# revealing sender information. +# +# In addition to the above removals, all other headers except those matching +# regular expressions in the following setting are also removed. The default +# setting below keeps all non X- headers, those X- headers added by Mailman +# and any X-Spam- headers. +ANONYMOUS_LIST_KEEP_HEADERS = ['^(?!x-)', '^x-mailman-', + '^x-content-filtered-by:', '^x-topics:', + '^x-ack:', '^x-beenthere:', + '^x-list-administrivia:', '^x-spam-', + ] + ##### @@ -1002,7 +1090,56 @@ DEFAULT_DEFAULT_MEMBER_MODERATION = No # moderators? DEFAULT_FORWARD_AUTO_DISCARDS = Yes -# What shold happen to non-member posts which are do not match explicit +# Shall dmarc_moderation_action be applied to messages From: domains with +# a DMARC policy of quarantine as well as reject? This sets the default for +# the list setting that controls it. +DEFAULT_DMARC_QUARANTINE_MODERATION_ACTION = Yes + +# Default action for posts whose From: address domain has a DMARC policy of +# reject or quarantine. See DEFAULT_FROM_IS_LIST below. Whatever is set as +# the default here precludes the list owner from setting a lower value. +# 0 = Accept +# 1 = Munge From +# 2 = Wrap Message +# 3 = Reject +# 4 = Discard +DEFAULT_DMARC_MODERATION_ACTION = 0 + +# Default for text to be added to a separate text/plain part preceding the +# message/rfc822 part containing the original message when +# dmarc_moderation_action is Wrap Message. +DEFAULT_DMARC_WRAPPED_MESSAGE_TEXT = '' + +# Parameters for DMARC DNS lookups. If you are seeing 'DNSException: +# Unable to query DMARC policy ...' entries in your error log, you may need +# to adjust these. +# The time to wait for a response from a name server before timeout. +DMARC_RESOLVER_TIMEOUT = seconds(3) +# The total time to spend trying to get an answer to the question. +DMARC_RESOLVER_LIFETIME = seconds(5) + +# What domains should be considered equivalent when testing list membership +# for posting/moderation. +# If two poster addresses with the same local part but +# different domains are to be considered equivalents for list +# membership tests, the domains are put in the list's equivalent_domains. +# This provides a default value for new lists. +# The format is one or more groups of equivalent domains. Within a group, +# the domains are separated by commas and multiple groups are +# separated by semicolons. White space is ignored. +# For example: +# +# 'example.com,mail.example.com;mac.com,me.com,icloud.com' +# +# In this example, if user@example.com is a list member, +# a post from user@mail.example.com will be treated as if it is +# from user@example.com for list membership/moderation purposes, +# and likewise, if user@me.com is a list member, posts from +# user@mac.com or user@icloud.com will be treated as if from +# user@me.com. +DEFAULT_EQUIVALENT_DOMAINS = '' + +# What should happen to non-member posts which are do not match explicit # non-member actions? # 0 = Accept # 1 = Hold @@ -1027,6 +1164,7 @@ DEFAULT_UMBRELLA_MEMBER_ADMIN_SUFFIX = "-owner" # Exclude/include (sibling) lists for non-digest delivery. DEFAULT_REGULAR_EXCLUDE_LISTS = [] DEFAULT_REGULAR_INCLUDE_LISTS = [] +DEFAULT_REGULAR_EXCLUDE_IGNORE = True ALLOW_CROSS_DOMAIN_SIBLING = False # This variable controls whether monthly password reminders are sent. @@ -1038,6 +1176,16 @@ DEFAULT_SEND_WELCOME_MSG = Yes # Send goodbye messages to unsubscribed members? DEFAULT_SEND_GOODBYE_MSG = Yes +# The following is a three way setting. It sets the default for the list's +# from_is_list policy which is applied to all posts except those for which a +# dmarc_moderation_action other than accept applies. +# 0 -> Do not rewrite the From: or wrap the message. +# 1 -> Rewrite the From: header of posts replacing the posters address with +# that of the list. Also see REMOVE_DKIM_HEADERS above. +# 2 -> Do not modify the From: of the message, but wrap the message in an outer +# message From the list address. +DEFAULT_FROM_IS_LIST = 0 + # Wipe sender information, and make it look like the list-admin # address sends all messages DEFAULT_ANONYMOUS_LIST = No @@ -1078,6 +1226,10 @@ DEFAULT_SUBSCRIBE_POLICY = 1 # Does this site allow completely unchecked subscriptions? ALLOW_OPEN_SUBSCRIBE = No +# This is the default list of addresses and regular expressions (beginning +# with ^) that are exempt from approval if SUBSCRIBE_POLICY is 2 or 3. +DEFAULT_SUBSCRIBE_AUTO_APPROVAL = [] + # The default policy for unsubscriptions. 0 (unmoderated unsubscribes) is # highly recommended! # 0 - unmoderated unsubscribes @@ -1252,6 +1404,10 @@ DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL = days(7) # failed to match by the bounce detector? DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER = Yes +# Does the list owner get a copy of every recognized bounce that increments +# the score for a list member but doesn't result in a disable or probe? +DEFAULT_BOUNCE_NOTIFY_OWNER_ON_BOUNCE_INCREMENT = No + # Notifications on bounce actions. The first specifies whether the list owner # should get a notification when a member is disabled due to bouncing, while # the second specifies whether the owner should get one when the member is @@ -1369,6 +1525,11 @@ UNSUBSCRIBE = 5 ACCEPT = 6 HOLD = 7 +# admindb summary sort button settings. All must evaluate to True. +SSENDER = 1 +SSENDERTIME = 2 +STIME = 3 + # Standard text field width TEXTFIELDWIDTH = 40 @@ -1488,6 +1649,7 @@ add_language('en', _('English (USA)'), 'us-ascii', 'ltr') add_language('es', _('Spanish (Spain)'), 'iso-8859-1', 'ltr') add_language('et', _('Estonian'), 'iso-8859-15', 'ltr') add_language('eu', _('Euskara'), 'iso-8859-15', 'ltr') # Basque +add_language('fa', _('Persian'), 'utf-8', 'rtl') add_language('fi', _('Finnish'), 'iso-8859-1', 'ltr') add_language('fr', _('French'), 'iso-8859-1', 'ltr') add_language('gl', _('Galician'), 'utf-8', 'ltr') @@ -1505,8 +1667,8 @@ add_language('no', _('Norwegian'), 'iso-8859-1', 'ltr') add_language('pl', _('Polish'), 'iso-8859-2', 'ltr') add_language('pt', _('Portuguese'), 'iso-8859-1', 'ltr') add_language('pt_BR', _('Portuguese (Brazil)'), 'iso-8859-1', 'ltr') -add_language('ro', _('Romanian'), 'iso-8859-2', 'ltr') -add_language('ru', _('Russian'), 'koi8-r', 'ltr') +add_language('ro', _('Romanian'), 'utf-8', 'ltr') +add_language('ru', _('Russian'), 'utf-8', 'ltr') add_language('sk', _('Slovak'), 'utf-8', 'ltr') add_language('sl', _('Slovenian'), 'iso-8859-2', 'ltr') add_language('sr', _('Serbian'), 'utf-8', 'ltr') |