1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
"""Distributed default settings for significant mailman config variables.
You should NOT edit the values here unless you're changing settings for
distribution. For site-specific settings, put your definitions in
mm_cfg.py after the point at which it includes (via 'from ... import *')
this file, to override the distributed defaults with site-specific ones.
"""
import os
VERSION = '1.0b1.2'
__version__ = "$Revision: 445 $"
# Many site-specific settings #
MAILMAN_URL = 'http://www.python.org/ftp/python/contrib/Network/mailman/'
DEFAULT_HOST_NAME = 'OVERRIDE.WITH.YOUR.MX.OR.HOST.NAME'
SMTPHOST = 'localhost'
SENDMAIL_CMD = '/usr/lib/sendmail -f %s %s' # yours may be different
DEFAULT_URL = 'http://www.OVERRIDE.WITH.YOUR.HOST/mailman/'
PUBLIC_ARCHIVE_URL = 'http://www.OVERRIDE.WITH.YOUR.PUBLIC.ARCHIVE.URL/'
PRIVATE_ARCHIVE_URL = 'http://www.OVERRIDE.WITH.YOUR.PRIVATE.ARCHIVE.URL/'
# Once we know our home directory we can figure out the rest.
# BUT, if you override these in mm_cfg.py, you have to override the dependants
# as well.
HOME_DIR = '/home/mailman'
MAILMAN_DIR = '/home/mailman/mailman'
LIST_DATA_DIR = os.path.join(MAILMAN_DIR, 'lists')
HTML_DIR = os.path.join(HOME_DIR, 'public_html')
CGI_DIR = os.path.join(HOME_DIR, 'cgi-bin')
LOG_DIR = os.path.join(HOME_DIR, 'logs')
LOCK_DIR = os.path.join(MAILMAN_DIR, 'locks')
TEMPLATE_DIR = os.path.join(MAILMAN_DIR, 'templates')
PUBLIC_ARCHIVE_FILE_DIR = os.path.join(HOME_DIR, 'archives/public')
PRIVATE_ARCHIVE_FILE_DIR = os.path.join(HOME_DIR, 'archives/private')
DEFAULT_ARCHIVE_PRIVATE = 0 # 0=public, 1=private
HOME_PAGE = 'index.html'
MAILMAN_OWNER = 'mailman-owner@%s' % DEFAULT_HOST_NAME
# System ceiling on number of batches into which deliveries are divided:
MAX_SPAWNS = 40
# General Defaults #
DEFAULT_FILTER_PROG = ''
# Default number of batches in which to divide large deliveries:
DEFAULT_NUM_SPAWNS = 5
DEFAULT_LIST_ADVERTISED = 1
DEFAULT_MAX_NUM_RECIPIENTS = 10
DEFAULT_MAX_MESSAGE_SIZE = 40 # KB
# These format strings will be expanded w.r.t. the dictionary for the
# maillist instance.
DEFAULT_SUBJECT_PREFIX = "[%(real_name)s] "
DEFAULT_MSG_HEADER = ""
DEFAULT_MSG_FOOTER = """------------------------------------------------------
%(real_name)s maillist - %(real_name)s@%(host_name)s
%(web_page_url)slistinfo/%(_internal_name)s
"""
# List Accessibility Defaults #
# Is admin notified of admin requests immediately by mail, as well as by
# daily pending-request reminder?
DEFAULT_ADMIN_IMMED_NOTIFY = 1
DEFAULT_MODERATED = 0
# Bounce if 'to' or 'cc' fields don't explicitly name list (anti-spam)?
DEFAULT_REQUIRE_EXPLICIT_DESTINATION = 1
# Alternate names acceptable as explicit destinations for this list.
DEFAULT_ACCEPTABLE_ALIASES ="""
"""
# {header-name: regexp} spam filtering - we include some for example sake.
DEFAULT_BOUNCE_MATCHING_HEADERS = """
# Lines that *start* with a '#' are comments.
to: friend@public.com
message-id: relay.comanche.denmark.eu
from: list@listme.com
from: .*@uplinkpro.com
"""
# Replies to posts inherently directed to list or original sender?
DEFAULT_REPLY_GOES_TO_LIST = 0
# Admin approval unnecessary for subscribes?
DEFAULT_OPEN_SUBSCRIBE = 1
# Private_roster == 0: anyone can see, 1: members only, 2: admin only.
DEFAULT_PRIVATE_ROSTER = 0
# When exposing members, make them unrecognizable as email addrs. To
# web-spiders from picking up addrs for spamming.
DEFAULT_OBSCURE_ADDRESSES = 1
# Make it 1 when it works.
DEFAULT_MEMBER_POSTING_ONLY = 0
# 1 for email subscription verification, 2 for admin confirmation:
DEFAULT_WEB_SUBSCRIBE_REQUIRES_CONFIRMATION = 1
# Digestification Defaults #
# Will list be available in non-digested form?
DEFAULT_NONDIGESTABLE = 1
# Will list be available in digested form?
DEFAULT_DIGESTABLE = 1
DEFAULT_DIGEST_HEADER = ""
DEFAULT_DIGEST_FOOTER = DEFAULT_MSG_FOOTER
DEFAULT_DIGEST_IS_DEFAULT = 0
DEFAULT_MIME_IS_DEFAULT_DIGEST = 1
DEFAULT_DIGEST_SIZE_THRESHHOLD = 30 # KB
DEFAULT_DIGEST_SEND_PERIODIC = 1
# We're only retaining the text file, an external pipermail (andrew's
# newest version) is pointed at the retained text copies.
## # 0 = never, 1 = daily, 2 = hourly:
## DEFAULT_ARCHIVE_UPDATE_FREQUENCY = 2
## # 0 = yearly, 1 = monthly
## DEFAULT_ARCHIVE_VOLUME_FREQUENCY = 0
## # Retain a flat text mailbox of postings as well as the fancy archives?
## DEFAULT_ARCHIVE_RETAIN_TEXT_COPY = 1
# Bounce Processing Defaults #
# Should we do any bounced mail checking at all?
DEFAULT_BOUNCE_PROCESSING = 1
# Minimum number of days that address has been undeliverable before
# we consider nuking it..
DEFAULT_MINIMUM_REMOVAL_DATE = 5
# Minimum number of bounced posts to the list before we consider nuking it.
DEFAULT_MINIMUM_POST_COUNT_BEFORE_BOUNCE_ACTION = 3
# 0 means do nothing
# 1 means disable and send admin a report,
# 2 means nuke'em (remove) and send admin a report,
# 3 means nuke 'em and don't report (whee:)
DEFAULT_AUTOMATIC_BOUNCE_ACTION = 1
# Maximum number of posts that can go by w/o a bounce before we figure your
# problem must have gotten resolved... usually this could be 1, but we
# need to account for lag time in getting the error messages. I'd set this
# to the maximum number of messages you'd expect your list to reasonably
# get in 1 hour.
DEFAULT_MAX_POSTS_BETWEEN_BOUNCES = 5
# Enumeration for types of configurable variables in Mailman.
Toggle = 1
Radio = 2
String = 3
Text = 4
Email = 5
EmailList = 6
Host = 7
Number = 8
# could add Directory and URL
# Bitfield for user options
Digests = 0 # handled by other mechanism, doesn't need a flag.
DisableDelivery = 1
DontReceiveOwnPosts = 2 # Non-digesters only
AcknowlegePosts = 4
DisableMime = 8 # Digesters only
ConcealSubscription = 16
|