Use my lazr.config megamerge branch for now, even though it's still under
[mailman.git] / mailman / config / schema.cfg
blob0a27c28f45fd859088598c1233593237561f104a
1 # Copyright (C) 2008 by the Free Software Foundation, Inc.
3 # This file is part of GNU Mailman.
5 # GNU Mailman is free software: you can redistribute it and/or modify it under
6 # the terms of the GNU General Public License as published by the Free
7 # Software Foundation, either version 3 of the License, or (at your option)
8 # any later version.
10 # GNU Mailman is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13 # more details.
15 # You should have received a copy of the GNU General Public License along with
16 # GNU Mailman.  If not, see <http://www.gnu.org/licenses/>.
18 # This is the GNU Mailman configuration schema.  It defines the default
19 # configuration options for the core system and plugins.  It uses ini-style
20 # formats under the lazr.config regime to define all system configuration
21 # options.  See <https://launchpad.net/lazr.config> for details.
23 [mailman]
24 # This address is the "site owner" address.  Certain messages which must be
25 # delivered to a human, but which can't be delivered to a list owner (e.g. a
26 # bounce from a list owner), will be sent to this address.  It should point to
27 # a human.
28 site-owner: changeme@example.com
30 # This address is used as the from address whenever a message comes from some
31 # entity to which there is no natural reply recipient.  Set this to a real
32 # human or to /dev/null.  It will be appended with the host name of the list
33 # involved.  This address must not bounce and it must not point to a Mailman
34 # process.
35 noreply-address: noreply
37 # Where all the runtime data will be kept.  This directory must exist.
38 var_dir: /tmp/mailman
40 # The default language for this server.
41 default_language: en
43 # When allowing only members to post to a mailing list, how is the sender of
44 # the message determined?  If this variable is set to Yes, then first the
45 # message's envelope sender is used, with a fallback to the sender if there is
46 # no envelope sender.  Set this variable to No to always use the sender.
48 # The envelope sender is set by the SMTP delivery and is thus less easily
49 # spoofed than the sender, which is typically just taken from the From: header
50 # and thus easily spoofed by the end-user.  However, sometimes the envelope
51 # sender isn't set correctly and this will manifest itself by postings being
52 # held for approval even if they appear to come from a list member.  If you
53 # are having this problem, set this variable to No, but understand that some
54 # spoofed messages may get through.
55 use_envelope_sender: no
57 # Mail command processor will ignore mail command lines after designated max.
58 email_commands_max_lines: 10
61 [qrunner.master]
62 # Define which process queue runners, and how many of them, to start.
64 # The full import path to the class for this queue runner.
65 class: mailman.queue.runner.Runner
67 # The directory path that this queue runner scans.
68 path: $VAR_DIR/qfiles/$name
70 # The number of parallel queue runners.  This must be a power of 2.
71 instances: 1
73 # Whether to start this queue runner or not.
74 start: yes
76 # The maximum number of restarts for this queue runner.  When the runner exits
77 # because of an error or other unexpected problem, it is automatically
78 # restarted, until the maximum number of restarts has been reached.
79 max_restarts: 10
81 # The sleep interval for the queue runner.  It wakes up once every interval to
82 # process the files in its slice of the queue directory.
83 sleep_time: 1s
85 [database]
86 # Use this to set the Storm database engine URL.  You generally have one
87 # primary database connection for all of Mailman.  List data and most rosters
88 # will store their data in this database, although external rosters may access
89 # other databases in their own way.  This string supports standard
90 # 'configuration' substitutions.
91 url: sqlite:///$DATA_DIR/mailman.db
92 debug: no
94 [logging.template]
95 # This defines various log settings.  The options available are:
97 # - level     -- Overrides the default level; this may be any of the
98 #                standard Python logging levels, case insensitive.
99 # - format    -- Overrides the default format string
100 # - datefmt   -- Overrides the default date format string
101 # - path      -- Overrides the default logger path.  This may be a relative
102 #                path name, in which case it is relative to Mailman's LOG_DIR,
103 #                or it may be an absolute path name.  You cannot change the
104 #                handler class that will be used.
105 # - propagate -- Boolean specifying whether to propagate log message from this
106 #                logger to the root "mailman" logger.  You cannot override
107 #                settings for the root logger.
109 # In this section, you can define defaults for all loggers, which will be
110 # prefixed by 'mailman.'.  Use subsections to override settings for specific
111 # loggers.  The names of the available loggers are:
113 # - archiver        --  All archiver output
114 # - bounce          --  All bounce processing logs go here
115 # - config          --  Configuration issues
116 # - debug           --  Only used for development
117 # - error           --  All exceptions go to this log
118 # - fromusenet      --  Information related to the Usenet to Mailman gateway
119 # - http            --  Internal wsgi-based web interface
120 # - locks           --  Lock state changes
121 # - mischief        --  Various types of hostile activity
122 # - post            --  Information about messages posted to mailing lists
123 # - qrunner         --  qrunner start/stops
124 # - smtp            --  Successful SMTP activity
125 # - smtp-failure    --  Unsuccessful SMTP activity
126 # - subscribe       --  Information about leaves/joins
127 # - vette           --  Information related to admindb activity
128 format: %(asctime)s (%(process)d) %(message)s
129 datefmt: %b %d %H:%M:%S %Y
130 propagate: no
131 level: info
132 path: mailman
134 [logging.root]
136 [logging.archiver]
138 [logging.bounce]
139 path: bounce
141 [logging.config]
143 [logging.debug]
144 path: debug
145 level: debug
147 [logging.error]
149 [logging.fromusenet]
151 [logging.http]
153 [logging.locks]
155 [logging.mischief]
157 [logging.qrunner]
159 [logging.smtp]
160 path: smtp
162 # The smtp logger defines additional options for handling the logging of each
163 # attempted delivery.  These format strings specify what information is logged
164 # for every message, every successful delivery, every refused delivery and
165 # every recipient failure.  To disable a status message, set the value to 'no'
166 # (without the quotes).
168 # These template strings accept the following set of substitution
169 # placeholders, if available.
171 # msgid     -- the Message-ID of the message in question
172 # listname  -- the fully-qualified list name
173 # sender    -- the sender if available
174 # recip     -- the recipient address if available, or the number of
175 #              recipients being delivered to
176 # size      -- the approximate size of the message in bytes
177 # seconds   -- the number of seconds the operation took
178 # refused   -- the number of refused recipients
179 # smtpcode  -- the SMTP success or failure code
180 # smtpmsg   -- the SMTP success or failure message
182 every: [$msgid] smtp to $listname for $recip recips, completed in $time seconds
183 success: [$msgid] post to $listname from $sender, $size bytes
184 refused: [$msgid] post to $listname from $sender, $size bytes, $refused failures
185 failure: [$msgid] delivery to $recip failed with code $smtpcode, $smtpmsg
188 [logging.subscribe]
190 [logging.vette]
193 [domain.master]
194 # Site-wide domain defaults.  To configure an individual
195 # domain, add a [domain.example_com] section with the overrides.
197 # This is the host name for the email interface.
198 email_host: example.com
199 # This is the base url for the domain's web interface.  It must include the
200 # url scheme.
201 base_url: http://example.com
202 # The contact address for this domain.  This is advertised as the human to
203 # contact when users have problems with the lists in this domain.
204 contact_address: postmaster@example.com
205 # A short description of this domain.
206 description: An example domain.
209 [language.master]
210 # Template for language definitions.  The section name must be [language.xx]
211 # where xx is the 2-character ISO code for the language.
213 # The English name for the language.
214 description: English (USA)
215 # And the default character set for the language.
216 charset: us-ascii
217 # Whether the language is enabled or not.
218 enabled: yes
221 [spam.headers.template]
222 # This section defines basic header matching actions.  Each spam.header
223 # section names a header to match (case-insensitively), a pattern to match
224 # against the header's value, and the chain to jump to when the match
225 # succeeds.
227 # The header value should not include the trailing colon.
228 header: X-Spam
229 # The pattern is always matched with re.IGNORECASE.
230 pattern: xyz
231 # The chain to jump to if the pattern matches. Maybe be any existing chain
232 # such as 'discard', 'reject', 'hold', or 'accept'.
233 chain: hold
236 [mta]
237 # The class defining the interface to the incoming mail transport agent.
238 incoming: mailman.mta.postfix.LMTP
240 # The class defining the interface to the outgoing mail transport agent.
241 outgoing: mailman.mta.direct.SMTPDirect
243 # How to connect to the outgoing MTA.
244 smtp_host: localhost
245 smtp_port: 25
248 [archiver.master]
249 base_url: http://archive.example.com/
250 recipient: archive@archive.example.com
251 command: /bin/echo