Clean up the mta directory.
[mailman.git] / src / mailman / config / schema.cfg
blobe66186074fe45bddd505405091c05b8a3129a02a
1 # Copyright (C) 2008-2016 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 is the local-part of an email address used in the From field whenever a
31 # message comes from some entity to which there is no natural reply recipient.
32 # Mailman will append '@' and the host name of the list involved.  This
33 # address must not bounce and it must not point to a Mailman process.
34 noreply_address: noreply
36 # The default language for this server.
37 default_language: en
39 # Membership tests for posting purposes are usually performed by looking at a
40 # set of headers, passing the test if any of their values match a member of
41 # the list.  Headers are checked in the order given in this variable.  The
42 # value From_ means to use the envelope sender.  Field names are case
43 # insensitive.  This is a space separate list of headers.
44 sender_headers: from from_ reply-to sender
46 # Mail command processor will ignore mail command lines after designated max.
47 email_commands_max_lines: 10
49 # Default length of time a pending request is live before it is evicted from
50 # the pending database.
51 pending_request_life: 3d
53 # A callable to run with no arguments early in the initialization process.
54 # This runs before database initialization.
55 pre_hook:
57 # A callable to run with no arguments late in the initialization process.
58 # This runs after adapters are initialized.
59 post_hook:
61 # Which paths.* file system layout to use.
62 layout: here
64 # Can MIME filtered messages be preserved by list owners?
65 filtered_messages_are_preservable: no
67 # How should text/html parts be converted to text/plain when the mailing list
68 # is set to convert HTML to plaintext?  This names a command to be called,
69 # where the substitution variable $filename is filled in by Mailman, and
70 # contains the path to the temporary file that the command should read from.
71 # The command should print the converted text to stdout.
72 html_to_plain_text_command: /usr/bin/lynx -dump $filename
75 [shell]
76 # `mailman shell` (also `withlist`) gives you an interactive prompt that you
77 # can use to interact with an initialized and configured Mailman system.  Use
78 # --help for more information.  This section allows you to configure certain
79 # aspects of this interactive shell.
81 # Customize the interpreter prompt.
82 prompt: >>>
84 # Banner to show on startup.
85 banner: Welcome to the GNU Mailman shell
87 # Use IPython as the shell, which must be found on the system.
88 use_ipython: no
91 [paths.master]
92 # Important directories for Mailman operation.  These are defined here so that
93 # different layouts can be supported.   For example, a developer layout would
94 # be different from a FHS layout.  Most paths are based off the var_dir, and
95 # often just setting that will do the right thing for all the other paths.
96 # You might also have to set spool_dir though.
98 # Substitutions are allowed, but must be of the form $var where 'var' names a
99 # configuration variable in the paths.* section.  Substitutions are expanded
100 # recursively until no more $-variables are present.  Beware of infinite
101 # expansion loops!
103 # This is the root of the directory structure that Mailman will use to store
104 # its run-time data.
105 var_dir: /var/tmp/mailman
106 # This is where the Mailman queue files directories will be created.
107 queue_dir: $var_dir/queue
108 # This is the directory containing the Mailman 'runner' and 'master' commands
109 # if set to the string '$argv', it will be taken as the directory containing
110 # the 'mailman' command.
111 bin_dir: $argv
112 # All list-specific data.
113 list_data_dir: $var_dir/lists
114 # Directory where log files go.
115 log_dir: $var_dir/logs
116 # Directory for system-wide locks.
117 lock_dir: $var_dir/locks
118 # Directory for system-wide data.
119 data_dir: $var_dir/data
120 # Directory for configuration files and such.
121 etc_dir: $var_dir/etc
122 # Directory containing Mailman plugins.
123 ext_dir: $var_dir/ext
124 # Directory where the default IMessageStore puts its messages.
125 messages_dir: $var_dir/messages
126 # Directory for archive backends to store their messages in.  Archivers should
127 # create a subdirectory in here to store their files.
128 archive_dir: $var_dir/archives
129 # Root directory for site-specific template override files.
130 template_dir: $var_dir/templates
131 # There are also a number of paths to specific file locations that can be
132 # defined.  For these, the directory containing the file must already exist,
133 # or be one of the directories created by Mailman as per above.
135 # This is where PID file for the master runner is stored.
136 pid_file: $var_dir/master.pid
137 # Lock file.
138 lock_file: $lock_dir/master.lck
141 [devmode]
142 # Setting enabled to true enables certain safeguards and other behavior
143 # changes that make developing Mailman easier.  For example, it forces the
144 # SMTP RCPT TO recipients to be a test address so that no messages are
145 # accidentally sent to real addresses.
146 enabled: no
148 # Set this to an address to force the SMTP RCPT TO recipents when devmode is
149 # enabled.  This way messages can't be accidentally sent to real addresses.
150 recipient:
152 # This gets set by the testing layers so that the runner subprocesses produce
153 # predictable dates and times.
154 testing: no
156 # Time-outs for starting up various test subprocesses, such as the LMTP and
157 # REST servers.  This is only used for the test suite, so if you're seeing
158 # test failures, try increasing the wait time.
159 wait: 60s
162 [passwords]
163 # Where can we find the passlib configuration file?  The path can be either a
164 # file system path or a Python import path.  If the value starts with python:
165 # then it is a Python import path, otherwise it is a file system path.  File
166 # system paths must be absolute since no guarantees are made about the current
167 # working directory.  Python paths should not include the trailing .cfg, which
168 # the file must end with.
169 configuration: python:mailman.config.passlib
171 # When Mailman generates them, this is the default length of passwords.
172 password_length: 8
175 [runner.master]
176 # Define which runners, and how many of them, to start.
178 # The full import path to the class for this runner.
179 class: mailman.core.runner.Runner
181 # The queue directory path that this runner scans.  This is ignored for
182 # runners that don't manage a queue directory.
183 path: $QUEUE_DIR/$name
185 # The number of parallel runners.  This must be a power of 2.  This is ignored
186 # for runners that don't manage a queue directory.
187 instances: 1
189 # Whether to start this runner or not.
190 start: yes
192 # The maximum number of restarts for this runner.  When the runner exits
193 # because of an error or other unexpected problem, it is automatically
194 # restarted, until the maximum number of restarts has been reached.
195 max_restarts: 10
197 # The sleep interval for the runner.  It wakes up once every interval to
198 # process the files in its slice of the queue directory.  Some runners may
199 # ignore this.
200 sleep_time: 1s
202 [database]
203 # The class implementing the IDatabase.
204 class: mailman.database.sqlite.SQLiteDatabase
206 # Use this to set the Storm database engine URL.  You generally have one
207 # primary database connection for all of Mailman.  List data and most rosters
208 # will store their data in this database, although external rosters may access
209 # other databases in their own way.  This string supports standard
210 # 'configuration' substitutions.
211 url: sqlite:///$DATA_DIR/mailman.db
212 debug: no
214 [logging.template]
215 # This defines various log settings.  The options available are:
217 # - level     -- Overrides the default level; this may be any of the
218 #                standard Python logging levels, case insensitive.
219 # - format    -- Overrides the default format string
220 # - datefmt   -- Overrides the default date format string
221 # - path      -- Overrides the default logger path.  This may be a relative
222 #                path name, in which case it is relative to Mailman's LOG_DIR,
223 #                or it may be an absolute path name.  You cannot change the
224 #                handler class that will be used.
225 # - propagate -- Boolean specifying whether to propagate log message from this
226 #                logger to the root "mailman" logger.  You cannot override
227 #                settings for the root logger.
229 # In this section, you can define defaults for all loggers, which will be
230 # prefixed by 'mailman.'.  Use subsections to override settings for specific
231 # loggers.  The names of the available loggers are:
233 # - archiver        --  All archiver output
234 # - bounce          --  All bounce processing logs go here
235 # - config          --  Configuration issues
236 # - database        --  Database logging (SQLAlchemy and Alembic)
237 # - debug           --  Only used for development
238 # - error           --  All exceptions go to this log
239 # - fromusenet      --  Information related to the Usenet to Mailman gateway
240 # - http            --  Internal wsgi-based web interface
241 # - locks           --  Lock state changes
242 # - mischief        --  Various types of hostile activity
243 # - runner          --  Runner process start/stops
244 # - smtp            --  Successful SMTP activity
245 # - smtp-failure    --  Unsuccessful SMTP activity
246 # - subscribe       --  Information about leaves/joins
247 # - vette           --  Message vetting information
248 format: %(asctime)s (%(process)d) %(message)s
249 datefmt: %b %d %H:%M:%S %Y
250 propagate: no
251 level: info
252 path: mailman.log
254 [logging.root]
256 [logging.archiver]
258 [logging.bounce]
259 path: bounce.log
261 [logging.config]
263 [logging.database]
264 level: warn
266 [logging.debug]
267 path: debug.log
268 level: info
270 [logging.error]
272 [logging.fromusenet]
274 [logging.http]
276 [logging.locks]
278 [logging.mischief]
280 [logging.runner]
282 [logging.smtp]
283 path: smtp.log
285 # The smtp logger defines additional options for handling the logging of each
286 # attempted delivery.  These format strings specify what information is logged
287 # for every message, every successful delivery, every refused delivery and
288 # every recipient failure.  To disable a status message, set the value to 'no'
289 # (without the quotes).
291 # These template strings accept the following set of substitution
292 # placeholders, if available.
294 # msgid     -- the Message-ID of the message in question
295 # listname  -- the fully-qualified list name
296 # sender    -- the sender if available
297 # recip     -- the recipient address if available, or the number of
298 #              recipients being delivered to
299 # size      -- the approximate size of the message in bytes
300 # seconds   -- the number of seconds the operation took
301 # refused   -- the number of refused recipients
302 # smtpcode  -- the SMTP success or failure code
303 # smtpmsg   -- the SMTP success or failure message
305 every: $msgid smtp to $listname for $recip recips, completed in $time seconds
306 success: $msgid post to $listname from $sender, $size bytes
307 refused: $msgid post to $listname from $sender, $size bytes, $refused failures
308 failure: $msgid delivery to $recip failed with code $smtpcode, $smtpmsg
311 [logging.subscribe]
313 [logging.vette]
316 [webservice]
317 # The hostname at which admin web service resources are exposed.
318 hostname: localhost
320 # The port at which the admin web service resources are exposed.
321 port: 8001
323 # Whether or not requests to the web service are secured through SSL.
324 use_https: no
326 # Whether or not to show tracebacks in an HTTP response for a request that
327 # raised an exception.
328 show_tracebacks: yes
330 # The API version number for the current (highest) API.
331 api_version: 3.1
333 # The administrative username.
334 admin_user: restadmin
336 # The administrative password.
337 admin_pass: restpass
340 [language.master]
341 # Template for language definitions.  The section name must be [language.xx]
342 # where xx is the 2-character ISO code for the language.
344 # The English name for the language.
345 description: English (USA)
346 # And the default character set for the language.
347 charset: us-ascii
348 # Whether the language is enabled or not.
349 enabled: yes
351 # Language charsets as imported from Mailman 2.1 defaults
352 # Ref: http://www.lingoes.net/en/translator/langcode.htm
353 [language.ar]
354 description: Arabic
355 charset: utf-8
356 enabled: yes
358 [language.ast]
359 description: Asturian
360 charset: iso-8859-1
361 enabled: yes
363 [language.ca]
364 description: Catalan
365 charset: utf-8
366 enabled: yes
368 [language.cs]
369 description: Czech
370 charset: iso-8859-2
371 enabled: yes
373 [language.da]
374 description: Danish
375 charset: iso-8859-1
376 enabled: yes
378 [language.de]
379 description: German
380 charset: iso-8859-1
381 enabled: yes
383 [language.el]
384 description: Greek
385 charset: iso-8859-7
386 enabled: yes
388 [language.es]
389 description: Spanish
390 charset: iso-8859-1
391 enabled: yes
393 [language.et]
394 description: Estonian
395 charset: iso-8859-15
396 enabled: yes
398 [language.eu]
399 # Basque
400 description: Euskara
401 charset: iso-8859-15
402 enabled: yes
404 [language.fi]
405 description: Finnish
406 charset: iso-8859-1
407 enabled: yes
409 [language.fr]
410 description: French
411 charset: iso-8859-1
412 enabled: yes
414 [language.gl]
415 description: Galician
416 charset: utf-8
417 enabled: yes
419 [language.he]
420 description: Hebrew
421 charset: utf-8
422 enabled: yes
424 [language.hr]
425 description: Croatian
426 charset: iso-8859-2
427 enabled: yes
429 [language.hu]
430 description: Hungarian
431 charset: iso-8859-2
432 enabled: yes
434 [language.ia]
435 description: Interlingua
436 charset: iso-8859-15
437 enabled: yes
439 [language.it]
440 description: Italian
441 charset: iso-8859-1
442 enabled: yes
444 [language.ja]
445 description: Japanese
446 charset: euc-jp
447 enabled: yes
449 [language.ko]
450 description: Korean
451 charset: euc-kr
452 enabled: yes
454 [language.lt]
455 description: Lithuanian
456 charset: iso-8859-13
457 enabled: yes
459 [language.nl]
460 description: Dutch
461 charset: iso-8859-1
462 enabled: yes
464 [language.no]
465 description: Norwegian
466 charset: iso-8859-1
467 enabled: yes
469 [language.pl]
470 description: Polish
471 charset: iso-8859-2
472 enabled: yes
474 [language.pt]
475 description: Protuguese
476 charset: iso-8859-1
477 enabled: yes
479 [language.pt_BR]
480 description: Protuguese (Brazil)
481 charset: iso-8859-1
482 enabled: yes
484 [language.ro]
485 description: Romanian
486 charset: iso-8859-2
487 enabled: yes
489 [language.ru]
490 description: Russian
491 charset: koi8-r
492 enabled: yes
494 [language.sk]
495 description: Slovak
496 charset: utf-8
497 enabled: yes
499 [language.sl]
500 description: Slovenian
501 charset: iso-8859-2
502 enabled: yes
504 [language.sr]
505 description: Serbian
506 charset: utf-8
507 enabled: yes
509 [language.sv]
510 description: Swedish
511 charset: iso-8859-1
512 enabled: yes
514 [language.tr]
515 description: Turkish
516 charset: iso-8859-9
517 enabled: yes
519 [language.uk]
520 description: Ukrainian
521 charset: utf-8
522 enabled: yes
524 [language.vi]
525 description: Vietnamese
526 charset: utf-8
527 enabled: yes
529 [language.zh_CN]
530 description: Chinese
531 charset: utf-8
532 enabled: yes
534 [language.zh_TW]
535 description: Chinese (Taiwan)
536 charset: utf-8
537 enabled: yes
540 [antispam]
541 # This section defines basic antispam detection settings.
543 # This value contains lines which specify RFC 822 headers in the email to
544 # check for spamminess.  Each line contains a `key: value` pair, where the key
545 # is the header to check and the value is a Python regular expression to match
546 # against the header's value.  E.g.:
548 # X-Spam: (yes|maybe)
550 # The header value and regular expression are always matched
551 # case-insensitively.
552 header_checks:
554 # The chain to jump to if any of the header patterns matches.  This must be
555 # the name of an existing chain such as 'discard', 'reject', 'hold', or
556 # 'accept', otherwise 'hold' will be used.
557 jump_chain: hold
560 [mta]
561 # The class defining the interface to the incoming mail transport agent.
562 incoming: mailman.mta.postfix.LMTP
564 # The callable implementing delivery to the outgoing mail transport agent.
565 # This must accept three arguments, the mailing list, the message, and the
566 # message metadata dictionary.
567 outgoing: mailman.mta.deliver.deliver
569 # How to connect to the outgoing MTA.  If smtp_user and smtp_pass is given,
570 # then Mailman will attempt to log into the MTA when making a new connection.
571 smtp_host: localhost
572 smtp_port: 25
573 smtp_user:
574 smtp_pass:
576 # Where the LMTP server listens for connections.  Use 127.0.0.1 instead of
577 # localhost for Postfix integration, because Postfix only consults DNS
578 # (e.g. not /etc/hosts).
579 lmtp_host: 127.0.0.1
580 lmtp_port: 8024
582 # Ceiling on the number of recipients that can be specified in a single SMTP
583 # transaction.  Set to 0 to submit the entire recipient list in one
584 # transaction.
585 max_recipients: 500
587 # Ceiling on the number of SMTP sessions to perform on a single socket
588 # connection.  Some MTAs have limits.  Set this to 0 to do as many as we like
589 # (i.e. your MTA has no limits).  Set this to some number great than 0 and
590 # Mailman will close the SMTP connection and re-open it after this number of
591 # consecutive sessions.
592 max_sessions_per_connection: 0
594 # Maximum number of simultaneous subthreads that will be used for SMTP
595 # delivery.  After the recipients list is chunked according to max_recipients,
596 # each chunk is handed off to the SMTP server by a separate such thread.  If
597 # your Python interpreter was not built for threads, this feature is disabled.
598 # You can explicitly disable it in all cases by setting max_delivery_threads
599 # to 0.
600 max_delivery_threads: 0
602 # How long should messages which have delivery failures continue to be
603 # retried?  After this period of time, a message that has failed recipients
604 # will be dequeued and those recipients will never receive the message.
605 delivery_retry_period: 5d
607 # These variables control the format and frequency of VERP-like delivery for
608 # better bounce detection.  VERP is Variable Envelope Return Path, defined
609 # here:
611 # http://cr.yp.to/proto/verp.txt
613 # This involves encoding the address of the recipient as Mailman knows it into
614 # the envelope sender address (i.e. RFC 5321 MAIL FROM).  Thus, no matter what
615 # kind of forwarding the recipient has in place, should it eventually bounce,
616 # we will receive an unambiguous notice of the bouncing address.
618 # However, we're technically only "VERP-like" because we're doing the envelope
619 # sender encoding in Mailman, not in the MTA.  We do require cooperation from
620 # the MTA, so you must be sure your MTA can be configured for extended address
621 # semantics.
623 # The first variable describes how to encode VERP envelopes.  It must contain
624 # these three string interpolations, which get filled in by Mailman:
626 # $bounces -- the list's -bounces robot address will be set here
627 # $local   -- the recipient address's local mailbox part will be set here
628 # $domain  -- the recipient address's domain name will be set here
630 # This example uses the default below.
632 # FQDN list address is: mylist@dom.ain
633 # Recipient is:         aperson@a.nother.dom
635 # The envelope sender will be mylist-bounces+aperson=a.nother.dom@dom.ain
637 # Note that your MTA /must/ be configured to deliver such an addressed message
638 # to mylist-bounces!
639 verp_delimiter: +
640 verp_format: ${bounces}+${local}=${domain}
642 # For nicer confirmation emails, use a VERP-like format which encodes the
643 # confirmation cookie in the reply address.  This lets us put a more user
644 # friendly Subject: on the message, but requires cooperation from the MTA.
645 # Format is like verp_format, but with the following substitutions:
647 # $address  -- the list-confirm address
648 # $cookie   -- the confirmation cookie
649 verp_confirm_format: $address+$cookie
651 # This regular expression unambiguously decodes VERP addresses, which will be
652 # placed in the To: (or other, depending on the MTA) header of the bounce
653 # message by the bouncing MTA.  Getting this right is critical -- and tricky.
654 # Learn your Python regular expressions.  It must define exactly three named
655 # groups, `bounces`, `local` and `domain`, with the same definition as above.
656 # It will be compiled case-insensitively.
657 verp_regexp: ^(?P<bounces>[^+]+?)\+(?P<local>[^=]+)=(?P<domain>[^@]+)@.*$
659 # This is analogous to verp_regexp, but for splitting apart the
660 # verp_confirm_format.  MUAs have been observed that mung
662 # From: local_part@host
664 # into
666 # To: "local_part" <local_part@host>
668 # when replying, so we skip everything up to '<' if any.
669 verp_confirm_regexp: ^(.*<)?(?P<addr>[^+]+?)\+(?P<cookie>[^@]+)@.*$
671 # Set this to 'yes' to enable VERP-like (more user friendly) confirmations.
672 verp_confirmations: no
674 # Another good opportunity is when regular delivery is personalized.  Here
675 # again, we're already incurring the performance hit for addressing each
676 # individual recipient.  Set this to 'yes' to enable VERPs on all personalized
677 # regular deliveries (personalized digests aren't supported yet).
678 verp_personalized_deliveries: no
680 # And finally, we can VERP normal, non-personalized deliveries.  However,
681 # because it can be a significant performance hit, we allow you to decide how
682 # often to VERP regular deliveries.  This is the interval, in number of
683 # messages, to do a VERP recipient address.  The same variable controls both
684 # regular and digest deliveries.  Set to 0 to disable occasional VERPs, set to
685 # 1 to VERP every delivery, or to some number > 1 for only occasional VERPs.
686 verp_delivery_interval: 0
688 # VERP format and regexp for probe messages.
689 verp_probe_format: $bounces+$token@$domain
690 verp_probe_regexp: ^(?P<bounces>[^+]+?)\+(?P<token>[^@]+)@.*$
691 # Set this 'yes' to activate VERP probe for disabling by bounce.
692 verp_probes: no
694 # This is the maximum number of automatic responses sent to an address because
695 # of -request messages or posting hold messages.  This limit prevents response
696 # loops between Mailman and misconfigured remote email robots.  Mailman
697 # already inhibits automatic replies to any message labeled with a header
698 # "Precendence: bulk|list|junk".  This is a fallback safety valve so it should
699 # be set fairly high.  Set to 0 for no limit (probably useful only for
700 # debugging).
701 max_autoresponses_per_day: 10
703 # Some list posts and mail to the -owner address may contain DomainKey or
704 # DomainKeys Identified Mail (DKIM) signature headers <http://www.dkim.org/>.
705 # Various list transformations to the message such as adding a list header or
706 # footer or scrubbing attachments or even reply-to munging can break these
707 # signatures.  It is generally felt that these signatures have value, even if
708 # broken and even if the outgoing message is resigned.  However, some sites
709 # may wish to remove these headers by setting this to 'yes'.
710 remove_dkim_headers: no
712 # Where can we find the mail server specific configuration file?  The path can
713 # be either a file system path or a Python import path.  If the value starts
714 # with python: then it is a Python import path, otherwise it is a file system
715 # path.  File system paths must be absolute since no guarantees are made about
716 # the current working directory.  Python paths should not include the trailing
717 # .cfg, which the file must end with.
718 configuration: python:mailman.config.postfix
721 [bounces]
722 # How often should the bounce runner process queued detected bounces?
723 register_bounces_every: 15m
726 [archiver.master]
727 # To add new archivers, define a new section based on this one, overriding the
728 # following values.
730 # The class implementing the IArchiver interface.
731 class:
733 # Set this to 'yes' to enable the archiver.
734 enable: no
736 # Additional configuration for the archiver.  The path can be either a file
737 # system path or a Python import path.  If the value starts with python: then
738 # it is a Python import path, otherwise it is a file system path.  File system
739 # paths must be absolute since no guarantees are made about the current
740 # working directory.  Python paths should not include the trailing .cfg, which
741 # the file must end with.
742 configuration: changeme
744 # When sending the message to the archiver, you have the option of
745 # "clobbering" the Date: header, specifically to make it more sane.  Some
746 # archivers can't handle dates that are wildly off from reality.  This does
747 # not change the Date: header for any other delivery vector except this
748 # specific archive.
750 # When the original Date header is clobbered, it will always be stored in
751 # X-Original-Date.  The new Date header will always be set to the date at
752 # which the messages was received by the Mailman server, in UTC.
754 # Your options here are:
755 # * never  -- Leaves the original Date header alone.
756 # * always -- Always override the Date header.
757 # * maybe  -- Override the Date only if it is outside the clobber_skew period.
758 clobber_date: maybe
759 clobber_skew: 1d
761 [archiver.mhonarc]
762 # This is the stock MHonArc archiver.
763 class: mailman.archiving.mhonarc.MHonArc
764 configuration: python:mailman.config.mhonarc
766 [archiver.mail_archive]
767 # This is the stock mail-archive.com archiver.
768 class: mailman.archiving.mailarchive.MailArchive
769 configuration: python:mailman.config.mail_archive
771 [archiver.prototype]
772 # This is a prototypical sample archiver.
773 class: mailman.archiving.prototype.Prototype
776 [styles]
777 # Python import paths inside which components are searched for which implement
778 # the IStyle interface.  Use one path per line.
779 paths:
780     mailman.styles
782 # The default style to apply if nothing else was requested.  The value is the
783 # name of an existing style.  If no such style exists, no style will be
784 # applied.
785 default: legacy-default
788 [digests]
789 # Headers which should be kept in both RFC 1153 (plain) and MIME digests.  RFC
790 # 1153 also specifies these headers in this exact order, so order matters.
791 # These are space separated and case insensitive.
792 mime_digest_keep_headers:
793     Date From To Cc Subject Message-ID Keywords
794     In-Reply-To References Content-Type MIME-Version
795     Content-Transfer-Encoding Precedence Reply-To
796     Message List-Post
798 plain_digest_keep_headers:
799     Message Date From
800     Subject To Cc
801     Message-ID Keywords
802     Content-Type
805 [nntp]
806 # Set these variables if you need to authenticate to your NNTP server for
807 # Usenet posting or reading.  Leave these blank if no authentication is
808 # necessary.
809 user:
810 password:
812 # Host and port of the NNTP server to connect to.  Leave these blank to use
813 # the default localhost:119.
814 host:
815 port:
817 # This controls how headers must be cleansed in order to be accepted by your
818 # NNTP server.  Some servers like INN reject messages containing prohibited
819 # headers, or duplicate headers.  The NNTP server may reject the message for
820 # other reasons, but there's little that can be programmatically done about
821 # that.
823 # These headers (case ignored) are removed from the original message.  This is
824 # a whitespace separate list of headers.
825 remove_headers:
826     nntp-posting-host nntp-posting-date x-trace
827     x-complaints-to xref date-received posted
828     posting-version relay-version received
830 # These headers are left alone, unless there are duplicates in the original
831 # message.  Any second and subsequent headers are rewritten to the second
832 # named header (case preserved).  This is a list of header pairs, one pair per
833 # line.
834 rewrite_duplicate_headers:
835     To X-Original-To
836     CC X-Original-CC
837     Content-Transfer-Encoding X-Original-Content-Transfer-Encoding
838     MIME-Version X-MIME-Version