ConfDef.pm 95.8 KB
Newer Older
1
2
3
4
# -*- indent-tabs-mode: nil; -*-
# vim:ft=perl:et:sw=4
# $Id$

5
# Sympa - SYsteme de Multi-Postage Automatique
6
7
8
9
#
# Copyright (c) 1997, 1998, 1999 Institut Pasteur & Christophe Wolfhugel
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
10
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017 GIP RENATER
11
12
# Copyright 2017, 2018 The Sympa Community. See the AUTHORS.md file at the
# top-level directory of this distribution and at
13
# <https://github.com/sympa-community/sympa.git>.
14
15
16
17
18
19
20
21
22
23
24
25
#
# 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
26
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
27

28
package Sympa::ConfDef;
29

30
31
use strict;
use warnings;
32

33
use Sympa::Constants;
34
35

our @params = (
36
37
38
    # Sympa services

    {'gettext_id' => 'Service description'},
39

40
    {   'name'       => 'domain',
IKEDA Soji's avatar
IKEDA Soji committed
41
42
        'gettext_id' => 'Primary mail domain name',
        'sample'     => 'mail.example.org',
43
44
        'edit'       => '1',
        'file'       => 'sympa.conf',
IKEDA Soji's avatar
IKEDA Soji committed
45
        'vhost' => '1',    #FIXME:not used in robot.conf.
46
    },
47
48
49
50
51
52
53
54
55
    {   'name'       => 'listmaster',
        'sample'     => 'your_email_address@domain.tld',
        'gettext_id' => 'Email addresses of listmasters',
        'file'       => 'sympa.conf',
        'split_char' => ',',
        'vhost'      => '1',
        'edit'       => '1',
        'gettext_comment' =>
            'Email addresses of the listmasters (users authorized to perform global server commands). Some error reports may also be sent to these addresses. Listmasters can be defined for each virtual host, however, the default listmasters will have privileges to manage all virtual hosts.',
56
    },
57
58
59
    {   'name'       => 'lang',
        'default'    => 'en-US',
        'gettext_id' => 'Default language',
IKEDA Soji's avatar
IKEDA Soji committed
60
        'vhost'      => '1',
61
        'file'       => 'sympa.conf',
IKEDA Soji's avatar
IKEDA Soji committed
62
        'edit'       => '1',
63
64
65
66
67
68
69
70
        'gettext_comment' =>
            'This is the default language used by Sympa. One of supported languages should be chosen.',
    },
    {   'name' => 'supported_lang',
        'default' =>
            'ca,cs,de,el,en-US,es,et,eu,fi,fr,gl,hu,it,ja,ko,nb,nl,oc,pl,pt-BR,ru,sv,tr,vi,zh-CN,zh-TW',
        'gettext_id' => 'Supported languages',
        'vhost'      => '1',
IKEDA Soji's avatar
IKEDA Soji committed
71
        'file'       => 'sympa.conf',
72
73
        'split_char' => ',',
        'edit'       => '1',
IKEDA Soji's avatar
IKEDA Soji committed
74
        'gettext_comment' =>
75
76
77
78
79
80
81
82
83
84
            'All supported languages for the user interface. Languages proper locale information not installed are ignored.',
    },
    {   'name'       => 'title',                   #FIXME:Not specific to web
        'default'    => 'Mailing lists service',
        'gettext_id' => 'Title of service',
        'gettext_comment' =>
            'The name of your mailing list service. It will appear in the header of web interface and subjects of several service messages.',
        'vhost' => '1',
        'file'  => 'wwsympa.conf',
        'edit'  => '1',
85
    },
86
87
    {   'name'       => 'gecos',
        'default'    => 'SYMPA',
IKEDA Soji's avatar
IKEDA Soji committed
88
        'gettext_id' => 'Display name of Sympa',
89
90
91
92
        'vhost'      => '1',
        'edit'       => '1',
        'file'       => 'sympa.conf',
        'gettext_comment' =>
IKEDA Soji's avatar
IKEDA Soji committed
93
            'This parameter is used for display name in the "From:" header field for the messages sent by Sympa itself.',
94
    },
95
96
97
    {   'name'       => 'legacy_character_support_feature',
        'default'    => 'off',
        'gettext_id' => 'Support of legacy character set',
98
99
100
        'file'       => 'sympa.conf',
        'edit'       => '1',
        'gettext_comment' =>
101
            "If set to \"on\", enables support of legacy character set according to charset.conf(5) configuration file.\nIn some language environments, legacy encoding (character set) can be preferred for e-mail messages: for example iso-2022-jp in Japanese language.",
102
    },
103
104
105
106
107

    {'gettext_id' => 'Database related'},

    {   'name'       => 'update_db_field_types',
        'gettext_id' => 'Update database structure',
IKEDA Soji's avatar
IKEDA Soji committed
108
        'gettext_comment' =>
109
110
            "auto: Updates database table structures automatically.\nHowever, since version 5.3b.5, Sympa will not shorten field size if it already have been longer than the size defined in database definition.",
        'default' => 'auto',
111
    },
112
113
114
    {   'name'       => 'db_type',
        'default'    => 'mysql',
        'gettext_id' => 'Type of the database',
IKEDA Soji's avatar
IKEDA Soji committed
115
        'gettext_comment' =>
116
117
118
            'Possible types are "MySQL", "PostgreSQL", "Oracle", "Sybase" and "SQLite".',
        'file' => 'sympa.conf',
        'edit' => '1',
119
    },
120
121
122
123
    {   'name'       => 'db_host',
        'default'    => 'localhost',
        'sample'     => 'localhost',
        'gettext_id' => 'Hostname of the database server',
IKEDA Soji's avatar
IKEDA Soji committed
124
        'gettext_comment' =>
125
126
127
            'With PostgreSQL, you can also use the path to Unix Socket Directory, e.g. "/var/run/postgresql" for connection with Unix domain socket.',
        'file' => 'sympa.conf',
        'edit' => '1',
128
    },
129
130
131
132
133
134
135
136
137
138
139
    {   'name'       => 'db_port',
        'default'    => undef,
        'gettext_id' => 'Port of the database server',
        'file'       => 'sympa.conf',
        'optional'   => '1',
    },
    {   'name'       => 'db_name',
        'default'    => 'sympa',
        'gettext_id' => 'Name of the database',
        'file'       => 'sympa.conf',
        'edit'       => '1',
IKEDA Soji's avatar
IKEDA Soji committed
140
        'gettext_comment' =>
141
            'With SQLite, this must be the full path to database file. With Oracle Database, this must be Oracle SID.',
142
    },
143
144
145
146
147
148
    {   'name'       => 'db_user',
        'default'    => 'user_name',
        'sample'     => 'sympa',
        'gettext_id' => 'User for the database connection',
        'file'       => 'sympa.conf',
        'edit'       => '1',
149
    },
150
151
152
153
154
155
156
    {   'name'       => 'db_passwd',
        'default'    => 'user_password',
        'sample'     => 'your_passwd',
        'gettext_id' => 'Password for the database connection',
        'file'       => 'sympa.conf',
        'edit'       => '1',
        'obfuscated' => '1',
IKEDA Soji's avatar
IKEDA Soji committed
157
        'gettext_comment' =>
158
            'What ever you use a password or not, you must protect the SQL server (is it not a public internet service ?)',
159
    },
160
161
    {   'name'       => 'db_options',
        'gettext_id' => 'Database options',
IKEDA Soji's avatar
IKEDA Soji committed
162
        'gettext_comment' =>
163
164
165
166
            'If these options are defined, they will be appended to data source name (DSN) fed to database driver. Check the related DBD documentation to learn about the available options.',
        'sample' =>
            'mysql_read_default_file=/home/joe/my.cnf;mysql_socket=tmp/mysql.sock-test',
        'optional' => '1',
167
    },
168
169
170
    {   'name'       => 'db_env',
        'gettext_id' => 'Environment variables setting for database',
        'file'       => 'sympa.conf',
IKEDA Soji's avatar
IKEDA Soji committed
171
        'gettext_comment' =>
172
173
174
175
            'With Oracle Database, this is useful for defining ORACLE_HOME and NLS_LANG.',
        'sample' =>
            'NLS_LANG=American_America.AL32UTF8;ORACLE_HOME=/u01/app/oracle/product/11.2.0/server',
        'optional' => '1',
176
    },
177
178
    {   'name'       => 'db_timeout',
        'gettext_id' => 'Database processing timeout',
IKEDA Soji's avatar
IKEDA Soji committed
179
        'gettext_comment' =>
180
181
            'Currently, this parameter may be used for SQLite only.',
        'optional' => '1',
182
    },
183
184
185
186
187
188
189
190
    {   'name'       => 'db_additional_subscriber_fields',
        'sample'     => 'billing_delay,subscription_expiration',
        'gettext_id' => 'Database private extension to subscriber table',
        'file'       => 'sympa.conf',
        'split_char' => ',',
        'gettext_comment' =>
            "Adds more fields to \"subscriber_table\" table. Sympa recognizes fields defined with this parameter. You will then be able to use them from within templates and scenarios:\n* for scenarios: [subscriber->field]\n* for templates: [% subscriber.field %]\nThese fields will also appear in the list members review page and will be editable by the list owner. This parameter is a comma-separated list.\nYou need to extend the database format with these fields",
        'optional' => '1',
191
    },
192
193
194
195
196
197
198
199
    {   'name'       => 'db_additional_user_fields',
        'sample'     => 'age,address',
        'gettext_id' => 'Database private extension to user table',
        'file'       => 'sympa.conf',
        'split_char' => ',',
        'gettext_comment' =>
            "Adds more fields to \"user_table\" table. Sympa recognizes fields defined with this parameter. You will then be able to use them from within templates: [% subscriber.field %]\nThis parameter is a comma-separated list.\nYou need to extend the database format with these fields",
        'optional' => '1',
200
    },
201
202
203
204
205
206
207
208
209

    {'gettext_id' => 'System log'},

    {   'name'            => 'syslog',
        'default'         => 'LOCAL1',
        'gettext_id'      => 'System log facility for Sympa',
        'file'            => 'sympa.conf',
        'edit'            => '1',
        'gettext_comment' => 'Do not forget to configure syslog server.',
210
    },
211
212
213
214
215
    {   'name'       => 'log_socket_type',
        'default'    => 'unix',
        'gettext_id' => 'Communication mode with syslog server',
        'file'       => 'sympa.conf',
        'edit'       => '1',
216
    },
217
218
219
220
221
222
223
224
    {   'name'       => 'log_level',
        'default'    => '0',
        'sample'     => '2',
        'gettext_id' => 'Log verbosity',
        'vhost'      => '1',
        'file'       => 'sympa.conf',
        'gettext_comment' =>
            "Sets the verbosity of logs.\n0: Only main operations are logged\n3: Almost everything is logged.",
225
    },
226
227
228
229
230
231
232
233
234

    {'gettext_id' => 'Alias management'},

    {   'name'       => 'aliases_program',
        'default'    => 'newaliases',
        'gettext_id' => 'Program used to update alias database',
        'gettext_comment' =>
            'This may be "makemap", "newaliases", "postalias", "postmap" or full path to custom program.',
        'vhost' => '1',
235
    },
236
237
238
239
240
241
    {   'name'       => 'aliases_db_type',
        'default'    => 'hash',
        'gettext_id' => 'Type of alias database',
        'gettext_comment' =>
            '"btree", "dbm", "hash" and so on.  Available when aliases_program is "makemap", "postalias" or "postmap"',
        'vhost' => '1',
242
    },
243
244
245
246
247
248
249
    {   'name'      => 'sendmail_aliases',
        'default_s' => '$SENDMAIL_ALIASES',
        'gettext_id' =>
            'Path of the file that contains all list related aliases',
        'gettext_comment' =>
            "It is recommended to create a specific alias file so that Sympa never overwrites the standard alias file, but only a dedicated file.\nSet this parameter to \"none\" if you want to disable alias management in Sympa.",
        'vhost' => '1',
250
    },
251
252
253
254
255
256
257
    {   'name'       => 'alias_manager',
        'gettext_id' => 'Path to alias manager',
        'gettext_comment' =>
            'The absolute path to the script that will add/remove mail aliases',

        'default_s' => '$SBINDIR/alias_manager.pl',
        'sample'    => '/usr/local/libexec/ldap_alias_manager.pl',
258
    },
259
260
261
262
263
264
265
266
267
268
269

    {'gettext_id' => 'Receiving'},

    {   'name'       => 'default_max_list_members',
        'gettext_id' => 'Default maximum number of list members',
        'default'    => '0',
        'optional'   => '1',
        'gettext_comment' =>
            'Default limit for the number of subscribers per list (0 means no limit).',
        'vhost' => '1',
        'file'  => 'sympa.conf',
270
    },
271
272
273
274
275
276
277
278
279
280
281

    {   'name'       => 'max_size',
        'gettext_id' => 'Maximum size of messages',
        'gettext_comment' =>
            'Incoming messages smaller than this size is allowed distribution by Sympa.',
        'gettext_unit' => 'bytes',
        'default'      => '5242880',      ## 5 MiB
        'sample'       => '2097152',
        'vhost'        => '1',
        'file'         => 'sympa.conf',
        'edit'         => '1',
282
    },
283
284
285
286
287
288
289
    {   'name'       => 'reject_mail_from_automates_feature',
        'gettext_id' => 'Reject mail sent from automated services to list',
        'gettext_comment' =>
            "Rejects messages that seem to be from automated services, based on a few header fields (\"Content-Identifier:\", \"Auto-Submitted:\").\nSympa also can be configured to reject messages based on the \"From:\" header field value (see \"loop_prevention_regex\").",
        'default' => 'on',
        'sample'  => 'off',
        'file'    => 'sympa.conf',
290
    },
291
292
293
294
295
296
297
298
    {   'name'    => 'sender_headers',
        'default' => 'From',
        'sample'  => 'Resent-From,From,Return-Path',
        'gettext_id' =>
            'Header field name(s) used to determine sender of the messages',
        'gettext_comment' =>
            '"Return-Path" means envelope sender (a.k.a. "UNIX From") which will be alternative to sender of messages without "From" field.  "Resent-From" may also be inserted before "From", because some mailers add it into redirected messages and keep original "From" field intact.  In particular cases, "Return-Path" can not give right sender: several mail gateway products rewrite envelope sender and add original one as non-standard field such as "X-Envelope-From".  If that is the case, you might want to insert it in place of "Return-Path".',
        'split_char' => ',',
299
    },
300
301
302
303
304
305

    {   'name'       => 'misaddressed_commands',
        'gettext_id' => 'Reject misaddressed commands',
        'gettext_comment' =>
            'When a mail command is sent to a list, by default Sympa rejects this message. This feature can be turned off setting this parameter to "ignore".',
        'default' => 'reject',
306
    },
307
308
309
310
311
312
313
    {   'name' => 'misaddressed_commands_regexp',
        'gettext_id' =>
            'Regular expression matching with misaddressed commands',
        'gettext_comment' =>
            'Perl regular expression applied on messages subject and body to detect misaddressed commands.',
        'default' =>
            '((subscribe\s+(\S+)|unsubscribe\s+(\S+)|signoff\s+(\S+)|set\s+(\S+)\s+(mail|nomail|digest))\s*)',
314
    },
315
316
317
318
319
320
    {   'name'       => 'sympa_priority',
        'gettext_id' => 'Priority for command messages',
        'gettext_comment' =>
            'Priority applied to messages sent to Sympa command address.',
        'file'    => 'sympa.conf',
        'default' => '1',
321
        'vhost'   => '1',
322
    },
323
324
325
326
327
328
    {   'name'       => 'request_priority',
        'gettext_id' => 'Priority for messages bound for list owners',
        'gettext_comment' =>
            'Priority for processing of messages bound for "LIST-request" address, i.e. owners of the list',
        'default' => '0',
        'file'    => 'sympa.conf',
329
        'vhost'   => '1',
330
    },
331
332
333
334
335
336
    {   'name'       => 'owner_priority',
        'gettext_id' => 'Priority for non-VERP bounces',
        'gettext_comment' =>
            'Priority for processing of messages bound for "LIST-owner" address, i.e. non-delivery reports (bounces).',
        'default' => '9',
        'file'    => 'sympa.conf',
337
        'vhost'   => '1',
338
    },
339
340
341
342
343
344
    {   'name'       => 'default_list_priority',
        'gettext_id' => 'Default priority for list messages',
        'gettext_comment' =>
            'Priority for processing of messages posted to list addresses.',
        'file'    => 'sympa.conf',
        'default' => '5',
345
        'vhost'   => '1',
346
    },
347
348
349
    {   'name'       => 'incoming_max_count',
        'default'    => '1',
        'gettext_id' => 'Max number of sympa.pl workers',
IKEDA Soji's avatar
IKEDA Soji committed
350
        'gettext_comment' =>
351
            'Max number of workers of sympa.pl daemon processing incoming spool.',
352
    },
353
354
355
356
357
358

    {   'name'       => 'sleep',
        'default'    => '5',
        'gettext_id' => 'Interval between scanning incoming message spool',
        'gettext_comment' => 'Must not be 0.',
        'gettext_unit'    => 'seconds',
359
    },
360
361
362
363
364
365

    {'gettext_id' => 'Sending related'},

    {   'name' => 'anonymous_header_fields',
        'gettext_id' =>
            'Header fields removed when a mailing list is setup in anonymous mode',
IKEDA Soji's avatar
IKEDA Soji committed
366
        'gettext_comment' =>
367
368
369
370
            "See \"anonymous_sender\" list parameter.\nDefault value prior to Sympa 6.1.19 is:\n  Sender,X-Sender,Received,Message-id,From,X-Envelope-To,Resent-From,Reply-To,Organization,Disposition-Notification-To,X-Envelope-From,X-X-Sender",
        'default' =>
            'Authentication-Results,Disposition-Notification-To,DKIM-Signature,Injection-Info,Organisation,Organization,Original-Recipient,Originator,Path,Received,Received-SPF,Reply-To,Resent-Reply-To,Return-Receipt-To,X-Envelope-From,X-Envelope-To,X-Sender,X-X-Sender',
        'split_char' => ',',
371
    },
372
373
    {   'name'       => 'merge_feature',
        'gettext_id' => 'Allow message personalization by default',
IKEDA Soji's avatar
IKEDA Soji committed
374
        'gettext_comment' =>
375
376
            'This parameter defines the default "merge_feature" list parameter.',
        'default' => 'off',
377
    },
378
379
    {   'name'       => 'remove_headers',
        'gettext_id' => 'Header fields to be removed from incoming messages',
IKEDA Soji's avatar
IKEDA Soji committed
380
        'gettext_comment' =>
381
382
383
384
385
            "Use it, for example, to ensure some privacy for your users in case that \"anonymous_sender\" mode is inappropriate.\nThe removal of these header fields is applied before Sympa adds its own header fields (\"rfc2369_header_fields\" and \"custom_header\").",
        'default' =>
            'X-Sympa-To,X-Family-To,Return-Receipt-To,Precedence,X-Sequence,Disposition-Notification-To,Sender',
        'sample' =>
            'Resent-Date,Resent-From,Resent-To,Resent-Message-Id,Sender,Delivered-To',
IKEDA Soji's avatar
IKEDA Soji committed
386
        'file'       => 'sympa.conf',
387
        'split_char' => ',',
388
    },
389
390
391
    {   'name' => 'remove_outgoing_headers',
        'gettext_id' =>
            'Header fields to be removed before message distribution',
IKEDA Soji's avatar
IKEDA Soji committed
392
        'gettext_comment' =>
393
394
395
396
            "The removal happens after Sympa's own header fields are added; therefore, it is a convenient way to remove Sympa's own header fields (like \"X-Loop:\" or \"X-no-archive:\") if you wish.",
        'default'    => 'none',
        'sample'     => 'X-no-archive',
        'split_char' => ',',
397
    },
398
399
    {   'name'       => 'rfc2369_header_fields',
        'gettext_id' => 'RFC 2369 header fields',
IKEDA Soji's avatar
IKEDA Soji committed
400
        'gettext_comment' =>
401
402
403
404
            "Specify which RFC 2369 mailing list header fields to be added.\n\"List-Id:\" header field defined in RFC 2919 is always added. Sympa also adds \"Archived-At:\" header field defined in RFC 5064.",
        'default'    => 'help,subscribe,unsubscribe,post,owner,archive',
        'file'       => 'sympa.conf',
        'split_char' => ',',
405
    },
406
407
408
409
    {   'name'       => 'urlize_min_size',
        'gettext_id' => 'Minimum size to be urlized',
        'gettext_comment' =>
            'When a subscriber chose "urlize" reception mode, attachments not smaller than this size will be urlized.',
IKEDA Soji's avatar
IKEDA Soji committed
410
        'gettext_unit' => 'bytes',
411
        'default'      => 10240,     ## 10 kiB,
IKEDA Soji's avatar
IKEDA Soji committed
412
        'vhost'        => '1',
413
    },
414
415
416
417
418
419
420
421
422
    {   'name'       => 'allowed_external_origin',
        'gettext_id' => 'Allowed external links in sanitized HTML',
        'gettext_comment' =>
            'When the HTML content of a message must be sanitized, links ("href" or "src" attributes) with the hosts listed in this parameter will not be scrubbed. If "*" character is included, it matches any subdomains. Single "*" allows any hosts.',
        'split_char' => ',',
        'optional'   => '1',
        'sample'     => '*.example.org,www.example.com',
        'vhost'      => '1',
    },
423
424
425

    {   'name'       => 'sympa_packet_priority',
        'gettext_id' => 'Default priority for a packet',
426
        'file'       => 'sympa.conf',
427
        'default'    => '5',
428
        'vhost'      => '1',
IKEDA Soji's avatar
IKEDA Soji committed
429
        'gettext_comment' =>
430
            'The default priority set to a packet to be sent by the bulk.',
431
    },
432
433
434
435
    {   'name'       => 'bulk_fork_threshold',
        'default'    => '1',
        'gettext_id' => 'Fork threshold of bulk daemon',
        'file'       => 'sympa.conf',
IKEDA Soji's avatar
IKEDA Soji committed
436
        'gettext_comment' =>
437
            'The minimum number of packets before bulk daemon forks a new worker to increase sending rate.',
438
    },
439
440
441
442
    {   'name'       => 'bulk_max_count',
        'default'    => '3',
        'gettext_id' => 'Maximum number of bulk workers',
        'file'       => 'sympa.conf',
443
    },
444
445
446
447
    {   'name'       => 'bulk_lazytime',
        'default'    => '600',
        'gettext_id' => 'Idle timeout of bulk workers',
        'file'       => 'sympa.conf',
IKEDA Soji's avatar
IKEDA Soji committed
448
        'gettext_comment' =>
449
            'The number of seconds a bulk worker will remain running without processing a message before it spontaneously exits.',
450
        'gettext_unit' => 'seconds',
451
    },
452
453
454
    {   'name'       => 'bulk_sleep',
        'default'    => '1',
        'gettext_id' => 'Sleep time of bulk workers',
IKEDA Soji's avatar
IKEDA Soji committed
455
456
        'file'       => 'sympa.conf',
        'gettext_comment' =>
457
458
            "The number of seconds a bulk worker sleeps between starting a new loop if it didn't find a message to send.\nKeep it small if you want your server to be reactive.",
        'gettext_unit' => 'seconds',
459
    },
460
461
462
    {   'name'       => 'bulk_wait_to_fork',
        'default'    => '10',
        'gettext_id' => 'Interval between checks of packet numbers',
463
        'file'       => 'sympa.conf',
464
465
466
        'gettext_comment' =>
            "Number of seconds a master bulk daemon waits between two packets number checks.\nKeep it small if you expect brutal increases in the message sending load.",
        'gettext_unit' => 'seconds',
467
    },
468
##    {
469
470
##        'name'     => 'pidfile_bulk',
##        'default'  => Sympa::Constants::PIDDIR . '/bulk.pid',
471
472
473
##        'file'     => 'sympa.conf',
##    },

474
475
    {   'name'       => 'sendmail',
        'default'    => '/usr/sbin/sendmail',
IKEDA Soji's avatar
IKEDA Soji committed
476
        'gettext_id' => 'Path to sendmail',
477
        'gettext_comment' =>
Sympa authors's avatar
Sympa authors committed
478
            "Absolute path to sendmail command line utility (e.g.: a binary named \"sendmail\" is distributed with Postfix).\nSympa expects this binary to be sendmail compatible (exim, Postfix, qmail and so on provide it).",
IKEDA Soji's avatar
IKEDA Soji committed
479
480
        'file' => 'sympa.conf',
        'edit' => '1',
481
    },
IKEDA Soji's avatar
IKEDA Soji committed
482
483
484
485
    {   'name'       => 'sendmail_args',
        'default'    => '-oi -odi -oem',
        'gettext_id' => 'Command line parameters passed to sendmail',
        'gettext_comment' =>
Sympa authors's avatar
Sympa authors committed
486
            "Note that \"-f\", \"-N\" and \"-V\" options and recipient addresses need not included, because they will be included by Sympa.",
487
    },
488
489
490
491
492
493
494
495
    {   'name'       => 'log_smtp',
        'gettext_id' => 'Log invocation of sendmail',
        'gettext_comment' =>
            'This can be overwritten by "-m" option for sympa.pl.',
        'default' => 'off',
        'vhost'   => '1',
        'file'    => 'sympa.conf',
    },
496
497
498
#    {   'name'    => 'distribution_mode',
#        'default' => 'single',
#    },
IKEDA Soji's avatar
IKEDA Soji committed
499
500
501
502
503
    {   'name'       => 'maxsmtp',
        'default'    => '40',
        'sample'     => '500',
        'gettext_id' => 'Maximum number of sendmail processes',
        'file'       => 'sympa.conf',
504
        'gettext_comment' =>
IKEDA Soji's avatar
IKEDA Soji committed
505
            "Maximum number of simultaneous child processes spawned by Sympa. This is the main load control parameter. \nProposed value is quite low, but you can rise it up to 100, 200 or even 300 with powerful systems.",
506
    },
507
508
509
    {   'name'       => 'nrcpt',
        'default'    => '25',
        'gettext_id' => 'Maximum number of recipients per call to sendmail',
IKEDA Soji's avatar
IKEDA Soji committed
510
        'gettext_comment' =>
511
512
            'This grouping factor makes it possible for the sendmail processes to optimize the number of SMTP sessions for message distribution. If needed, you can limit the number of recipients for a particular domain. Check the "nrcpt_by_domain.conf" configuration file.',
        'file' => 'sympa.conf',
513
    },
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
    {   'name'    => 'avg',
        'default' => '10',
        'gettext_id' =>
            'Maximum number of different mail domains per call to sendmail',
        'file' => 'sympa.conf',
    },

    {'gettext_id' => 'Privileges'},

    {   'name'       => 'create_list',
        'default'    => 'public_listmaster',
        'sample'     => 'intranet',
        'gettext_id' => 'Who is able to create lists',
        'vhost'      => '1',
        'file'       => 'sympa.conf',
        'edit'       => '1',
IKEDA Soji's avatar
IKEDA Soji committed
530
        'gettext_comment' =>
531
532
533
534
535
536
537
538
            'Defines who can create lists (or request list creation) by creating new lists or by renaming or copying existing lists.',
        'scenario' => '1',
    },
    {   'name'       => 'allow_subscribe_if_pending',
        'gettext_id' => 'Allow adding subscribers to a list not open',
        'gettext_comment' =>
            'If set to "off", adding subscribers to, or removing subscribers from a list with status other than "open" is forbidden.',
        'default' => 'on',
539
        'vhost'   => '1',
540
    },
541
542
543
544
    {   'name'       => 'global_remind',
        'gettext_id' => 'Who is able to send remind messages over all lists',
        'default'    => 'listmaster',
        'scenario'   => '1',
545
    },
546
547
548
    {   'name'       => 'move_user',
        'default'    => 'auth',
        'gettext_id' => 'Who is able to change user\'s email',
IKEDA Soji's avatar
IKEDA Soji committed
549
550
        'vhost'      => '1',
        'scenario'   => '1',
551
    },
IKEDA Soji's avatar
IKEDA Soji committed
552
553
554
555
556
557
558
    {   'name'       => 'use_blacklist',
        'gettext_id' => 'Use blacklist',
        'default'    => 'send,create_list',
        'vhost'      => '1',
        'file'       => 'sympa.conf',
        'split_char' => ',',
        'edit'       => '1',
559
        'gettext_comment' =>
IKEDA Soji's avatar
IKEDA Soji committed
560
            'List of operations separated by comma for which blacklist filter is applied.  Setting this parameter to "none" will hide the blacklist feature.',
561
    },
562
563
564
565
566
567
568
569
570
571
572
573
574
575
    {   'name'       => 'owner_domain',
        'sample'     => 'domain1.tld domain2.tld',
        'gettext_id' => 'List of required domains for list owner addresses',
        'file'       => 'sympa.conf',
        'optional'   => '1',
        'split_char' => ' ',
        'vhost'      => '1',
        'edit'       => '1',
        'gettext_comment' =>
            'Restrict list ownership to addresses in the specified domains. This can be used to reserve list ownership to a group of trusted users from a set of domains associated with an organization, while allowing editors and subscribers from the Internet at large.',
        'default'    => undef,
    },
    {   'name'       => 'owner_domain_min',
        'sample'     => '1',
576
        'gettext_id' => 'Minimum number of owners for each list that must match owner_domain restriction',
577
578
579
580
581
582
        'file'       => 'sympa.conf',
        'default'    => '0',
        'optional'   => '1',
        'vhost'      => '1',
        'edit'       => '1',
        'gettext_comment' =>
583
            'Minimum number of owners for each list must satisfy the owner_domain restriction. The default of zero (0) means *all* list owners must match. Setting to 1 requires only one list owner to match owner_domain; all other owners can be from any domain. This setting can be used to ensure that there is always at least one known contact point for any mailing list.',
584
    },
585
586
587
588
589
590

    {'gettext_id' => 'Archives'},

    {   'name'       => 'process_archive',
        'default'    => 'off',
        'gettext_id' => 'Store distributed messages into archive',
IKEDA Soji's avatar
IKEDA Soji committed
591
        'gettext_comment' =>
592
            "If enabled, distributed messages via lists will be archived. Otherwise archiving is disabled.\nNote that even if setting this parameter disabled, past archives will not be removed and will be accessible according to access settings by each list.",
593
594
        'vhost' => '1',
        'file'  => 'sympa.conf',
595
        'edit'  => '1',
596
    },
597
    {   'name'         => 'default_archive_quota',
598
        'gettext_id'   => 'Default disk quota for lists\' archives',
599
600
        'gettext_unit' => 'Kbytes',
        'optional'     => '1',
IKEDA Soji's avatar
IKEDA Soji committed
601
    },
602
603
604

    {   'name'       => 'ignore_x_no_archive_header_feature',
        'gettext_id' => 'Ignore "X-no-archive:" header field',
IKEDA Soji's avatar
IKEDA Soji committed
605
        'gettext_comment' =>
606
607
608
            'Sympa\'s default behavior is to skip archiving of incoming messages that have an "X-no-archive:" header field set. This parameter allows to change this behavior.',
        'default' => 'off',
        'sample'  => 'on',
609
    },
610
611
612
    {   'name'       => 'custom_archiver',
        'optional'   => '1',
        'gettext_id' => 'Custom archiver',
IKEDA Soji's avatar
IKEDA Soji committed
613
        'gettext_comment' =>
614
615
616
            "Activates a custom archiver to use instead of MHonArc. The value of this parameter is the absolute path to the executable file.\nSympa invokes this file with these two arguments:\n--list\nThe address of the list including domain part.\n--file\nAbsolute path to the message to be archived.",
        'file' => 'wwsympa.conf',
        'edit' => '1',
617
    },
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
    {   'name'            => 'mhonarc',
        'default'         => '/usr/bin/mhonarc',
        'gettext_id'      => 'Path to MHonArc mail-to-HTML converter',
        'file'            => 'wwsympa.conf',
        'edit'            => '1',
        'gettext_comment' => 'This is required for HTML mail archiving.',
        'vhost'           => '1',
    },
##    {
##        'name'     => 'archived_pidfile',
##        'default'  => Sympa::Constants::PIDDIR . '/archived.pid',
##        'gettext_id' => 'File containing archived PID while running',
##        'file'     => 'wwsympa.conf',
##    },

    {'gettext_id' => 'Bounce management and tracking'},

    {   'name'       => 'bounce_warn_rate',
        'default'    => '30',
        'gettext_id' => 'Default bounce warn rate',
IKEDA Soji's avatar
IKEDA Soji committed
638
        'gettext_comment' =>
639
            'The list owner receives a warning whenever a message is distributed and the number (percentage) of bounces exceeds this value.',
640
        'file' => 'sympa.conf',
641
        'edit' => '1',
642
    },
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
    {   'name'       => 'bounce_halt_rate',
        'default'    => '50',
        'gettext_id' => 'Default bounce halt rate',
        'file'       => 'sympa.conf',
        'gettext_comment' =>
            'NOT USED YET. If bounce rate reaches the halt_rate, messages for the list will be halted, i.e. they are retained for subsequent moderation.',
    },
    {   'name'       => 'default_bounce_level1_rate',
        'gettext_id' => 'Default bounce management threshold, 1st level',
        'default'    => '45',
        'vhost'      => '1',
    },
    {   'name'       => 'default_bounce_level2_rate',
        'gettext_id' => 'Default bounce management threshold, 2nd level',
        'default'    => '75',
        'vhost'      => '1',
    },

    {   'name'       => 'verp_rate',
        'gettext_id' => 'Percentage of list members in VERP mode',
        'gettext_comment' =>
            "Uses variable envelope return path (VERP) to detect bouncing subscriber addresses.\n0%: VERP is never used.\n100%: VERP is always in use.\nVERP requires address with extension to be supported by MTA. If tracking is enabled for a list or a message, VERP is applied for 100% of subscribers.",
        'default' => '0%',
        'vhost'   => '1',
    },
    {   'name' => 'tracking_delivery_status_notification',
669
        'gettext_id' =>
670
671
            'Tracking message by delivery status notification (DSN)',
        'default' => 'off',
672
    },
673
674
675
676
677
678
679
    {   'name' => 'tracking_message_disposition_notification',
        'gettext_id' =>
            'Tracking message by message disposition notification (MDN)',
        'default' => 'off',
    },
    {   'name'       => 'tracking_default_retention_period',
        'gettext_id' => 'Max age of tracking information',
IKEDA Soji's avatar
IKEDA Soji committed
680
        'gettext_comment' =>
681
            'Tracking information is removed after this number of days',
682
683
        'gettext_unit' => 'days',
        'default'      => '90',
684
    },
685
686
687
688
    {   'name'       => 'welcome_return_path',
        'default'    => 'owner',
        'gettext_id' => 'Remove bouncing new subscribers',
        'file'       => 'sympa.conf',
IKEDA Soji's avatar
IKEDA Soji committed
689
        'gettext_comment' =>
690
            'If set to unique, the welcome message is sent using a unique return path in order to remove the subscriber immediately in the case of a bounce.',
691
    },
692
693
694
695
    {   'name'       => 'remind_return_path',
        'default'    => 'owner',
        'gettext_id' => 'Remove subscribers bouncing remind message',
        'file'       => 'sympa.conf',
IKEDA Soji's avatar
IKEDA Soji committed
696
        'gettext_comment' =>
697
            'Same as welcome_return_path, but applied to remind messages.',
698
    },
699
700
    {   'name'       => 'default_remind_task',
        'gettext_id' => 'Periodical subscription reminder task',
IKEDA Soji's avatar
IKEDA Soji committed
701
        'gettext_comment' =>
702
703
            'This task regularly sends subscribers a message which reminds them of their list subscriptions.',
        'optional' => '1',
704
    },
705
706
707
708
709
710
711
712
713
714
##    {
##        'name'     => 'bounced_pidfile',
##        'default'  => Sympa::Constants::PIDDIR . '/bounced.pid',
##        'gettext_id' => 'File containing bounced PID while running',
##        'file'     => 'wwsympa.conf',
##    },

    {   'name'       => 'expire_bounce_task',
        'default'    => 'daily',
        'gettext_id' => 'Task for expiration of old bounces',
IKEDA Soji's avatar
IKEDA Soji committed
715
        'gettext_comment' =>
716
717
            'This task resets bouncing information for addresses not bouncing in the last 10 days after the latest message distribution.',
        'file' => 'sympa.conf',
718
    },
719
720
    {   'name'       => 'purge_orphan_bounces_task',
        'gettext_id' => 'Task for cleaning invalidated bounces',
IKEDA Soji's avatar
IKEDA Soji committed
721
        'gettext_comment' =>
722
723
            'This task deletes bounce information for unsubscribed users.',
        'default' => 'monthly',
724
    },
725
726
    {   'name'       => 'eval_bouncers_task',
        'gettext_id' => 'Task for updating bounce scores',
IKEDA Soji's avatar
IKEDA Soji committed
727
        'gettext_comment' =>
728
729
            'This task scans all bouncing users for all lists, and updates "bounce_score_subscriber" field in "subscriber_table" table. The scores may be used for management of bouncers.',
        'default' => 'daily',
730
    },
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
    {   'name'       => 'process_bouncers_task',
        'gettext_id' => 'Task for management of bouncers',
        'gettext_comment' =>
            'This task executes actions on bouncing users configured by each list, according to their scores.',
        'default' => 'weekly',
    },
    {   'name'       => 'purge_tables_task',
        'gettext_id' => 'Task for cleaning tables',
        'gettext_comment' =>
            'This task cleans old tracking information from "notification_table" table.',
        'default' => 'daily',
    },
    {   'name'       => 'minimum_bouncing_count',
        'gettext_id' => 'Minimum number of bounces',
        'gettext_comment' =>
            'The minimum number of bounces received to update bounce score of a user.',
        'default' => '10',
    },
    {   'name'       => 'minimum_bouncing_period',
        'gettext_id' => 'Minimum bouncing period',
        'gettext_comment' =>
            'The minimum period for which bouncing lasted to update bounce score of a user.',
        'gettext_unit' => 'days',
        'default'      => '10',
    },
    {   'name'       => 'bounce_delay',
        'gettext_id' => 'Delay of bounces',
IKEDA Soji's avatar
IKEDA Soji committed
758
        'gettext_comment' =>
759
760
761
            'Average time for a bounce sent back to mailing list server after a post was sent to a list. Usually bounces are sent back on the same day as the original message.',
        'gettext_unit' => 'days',
        'default'      => '0',
IKEDA Soji's avatar
IKEDA Soji committed
762
    },
763
    {   'name' => 'bounce_email_prefix',
IKEDA Soji's avatar
IKEDA Soji committed
764
        'gettext_comment' =>
765
766
            "The prefix to consist the return-path of probe messages used for bounce management, when variable envelope return path (VERP) is enabled. VERP requires address with extension to be supported by MTA.\nIf you change the default value, you must modify the mail aliases too.",
        'default' => 'bounce',
767
    },
768
769
    {   'name'       => 'return_path_suffix',
        'gettext_id' => 'Suffix of list return address',
IKEDA Soji's avatar
IKEDA Soji committed
770
        'gettext_comment' =>
771
            'The suffix appended to the list name to form the return-path of messages distributed through the list. This address will receive all non-delivery reports (also called bounces).',
772
        'default' => '-owner',
773
    },
774
775
776
777
778
779
780

    # Sympa services: Advanced configuration

    {'gettext_id' => 'Loop prevention'},

    {   'name'       => 'loop_command_max',
        'gettext_id' => 'Maximum number of responses to command message',
IKEDA Soji's avatar
IKEDA Soji committed
781
        'gettext_comment' =>
782
783
            'The maximum number of command reports sent to an email address. Messages are stored in "bad" subdirectory of incoming message spool, and reports are not longer sent.',
        'default' => '200',
784
    },
785
786
    {   'name'       => 'loop_command_sampling_delay',
        'gettext_id' => 'Delay before counting responses to command message',
787
        'gettext_comment' =>
788
789
790
            'This parameter defines the delay in seconds before decrementing the counter of reports sent to an email address.',
        'gettext_unit' => 'seconds',
        'default'      => '3600',
791
    },
792
793
    {   'name'       => 'loop_command_decrease_factor',
        'gettext_id' => 'Decrementing factor of responses to command message',
IKEDA Soji's avatar
IKEDA Soji committed
794
        'gettext_comment' =>
795
796
            'The decrementation factor (from 0 to 1), used to determine the new report counter after expiration of the delay.',
        'default' => '0.5',
797
    },
798
799
    {   'name'       => 'loop_prevention_regex',
        'gettext_id' => 'Regular expression to prevent loop',
800
        'gettext_comment' =>
801
802
803
804
            'If the sender address matches the regular expression, then the message is rejected.',
        'default' =>
            'mailer-daemon|sympa|listserv|majordomo|smartlist|mailman',
        'vhost' => '1',
805
    },
806
807
    {   'name'       => 'msgid_table_cleanup_ttl',
        'gettext_id' => 'Expiration period of message ID table',
IKEDA Soji's avatar
IKEDA Soji committed
808
        'gettext_comment' =>
809
810
811
            'Expiration period of entries in the table maintained by sympa_msg.pl daemon to prevent delivery of duplicate messages caused by loop.',
        'gettext_unit' => 'seconds',
        'default'      => '86400',
812
    },
813
814
    {   'name'       => 'msgid_table_cleanup_frequency',
        'gettext_id' => 'Cleanup interval of message ID table',
815
        'gettext_comment' =>
816
817
818
            'Interval between cleanups of the table maintained by sympa_msg.pl daemon to prevent delivery of duplicate messages caused by loop.',
        'gettext_unit' => 'seconds',
        'default'      => '3600',
819
    },
820

821
    {'gettext_id' => 'Automatic lists'},
822

823
824
    {   'name'       => 'automatic_list_removal',
        'gettext_id' => 'Remove empty automatic list',
IKEDA Soji's avatar
IKEDA Soji committed
825
        'gettext_comment' =>
826
827
828
829
            'If set to "if_empty", then Sympa will remove automatically created mailing lists just after their creation, if they contain no list member.',
        'default' => 'none',       ## Can be 'if_empty'
        'sample'  => 'if_empty',
        'vhost'   => '1',
830
    },
831
832
833
834
    {   'name'       => 'automatic_list_feature',
        'gettext_id' => 'Automatic list',
        'default'    => 'off',
        'vhost'      => '1',
835
    },
836
837
838
839
840
    {   'name'       => 'automatic_list_creation',
        'gettext_id' => 'Who is able to create automatic list',
        'default'    => 'public',
        'vhost'      => '1',
        'scenario'   => '1',
841
    },
842
843
844
845
    {   'name' => 'automatic_list_families',
        'sample' =>
            'name=family_one:prefix=f1:display=My automatic lists:prefix_separator=+:classes separator=-:family_owners_list=alist@domain.tld;name=family_two:prefix=f2:display=My other automatic lists:prefix_separator=+:classes separator=-:family_owners_list=anotherlist@domain.tld;',
        'gettext_id' => 'Definition of automatic list families',
IKEDA Soji's avatar
IKEDA Soji committed
846
        'gettext_comment' =>
847
848
849
850
            "Defines the families the automatic lists are based on. It is a character string structured as follows:\n* each family is separated from the other by a semi-column (;)\n* inside a family definition, each field is separated from the other by a column (:)\n* each field has the structure: \"<field name>=<filed value>\"\nBasically, each time Sympa uses the automatic lists families, the values defined in this parameter will be available in the family object.\n* for scenarios: [family->name]\n* for templates: [% family.name %]",
        'file'     => 'sympa.conf',
        'optional' => '1',
        'vhost'    => '1',
851
    },
852
853
    {   'name'       => 'parsed_family_files',
        'gettext_id' => 'Parsed files for families',
854
        'gettext_comment' =>
855
            'comma-separated list of files that will be parsed by Sympa when instantiating a family (no space allowed in file names)',
IKEDA Soji's avatar
IKEDA Soji committed
856
        'file'       => 'sympa.conf',
857
858
859
860
        'split_char' => ',',
        'default' =>
            'message.footer,message.header,message.footer.mime,message.header.mime,info',
        'vhost' => '1',
861
862
    },

863
    {'gettext_id' => 'Tag based spam filtering'},
864

865
866
867
868
869
870
871
872
    {   'name'       => 'antispam_feature',
        'gettext_id' => 'Tag based spam filtering',
        'default'    => 'off',
        'vhost'      => '1',
    },
    {   'name'       => 'antispam_tag_header_name',
        'default'    => 'X-Spam-Status',
        'gettext_id' => 'Header field to tag spams',
IKEDA Soji's avatar
IKEDA Soji committed
873
        'gettext_comment' =>
874
            'If a spam filter (like spamassassin or j-chkmail) add a header field to tag spams, name of this header field (example X-Spam-Status)',
875
876
        'vhost' => '1',
        'file'  => 'sympa.conf',
877
        'edit'  => '1',
878
    },
879
880
881
882
883
884
885
886
887
    {   'name'    => 'antispam_tag_header_spam_regexp',
        'default' => '^\s*Yes',
        'gettext_id' =>
            'Regular expression to check header field to tag spams',
        'gettext_comment' =>
            'Regular expression applied on this header to verify message is a spam (example Yes)',
        'vhost' => '1',
        'file'  => 'sympa.conf',
        'edit'  => '1',
IKEDA Soji's avatar
IKEDA Soji committed
888
    },
889
890
891
892
893
894
895
896
897
898
899
900
901
    {   'name'       => 'antispam_tag_header_ham_regexp',
        'default'    => '^\s*No',
        'gettext_id' => 'Regular expression to determine spam or ham.',
        'gettext_comment' =>
            'Regular expression applied on this header field to verify message is NOT a spam (example No)',
        'vhost' => '1',
        'file'  => 'sympa.conf',
        'edit'  => '1',
    },
    {   'name'       => 'spam_status',
        'default'    => 'x-spam-status',
        'gettext_id' => 'Name of header field to inform',
        'gettext_comment' =>
902
            'Messages are supposed to be filtered by an spam filter that adds them one or more headers. This parameter is used to select a special scenario in order to decide the message\'s spam status: ham, spam or unsure. This parameter replaces antispam_tag_header_name, antispam_tag_header_spam_regexp and antispam_tag_header_ham_regexp.',
903
904
905
906
        'vhost'    => '1',
        'file'     => 'sympa.conf',
        'edit'     => '1',
        'scenario' => '1',
907
    },
908

909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
    {'gettext_id' => 'Directories'},

    {   'name'            => 'home',
        'default_s'       => '$EXPLDIR',
        'gettext_id'      => 'List home',
        'gettext_comment' => 'Base directory of list configurations.',
        'file'            => 'sympa.conf',
        'edit'            => '1',
    },
    {   'name'       => 'etc',
        'default_s'  => '$SYSCONFDIR',
        'gettext_id' => 'Directory for configuration files',
        'gettext_comment' =>
            'Base directory of global configuration (except "sympa.conf").',
        'file' => 'sympa.conf',
    },
##    {
##        name    => 'localedir',
##        default => Sympa::Constants::LOCALEDIR,
##        'gettext_id' =>
##        'Directory containing available NLS catalogues (Message internationalization)',
##        file    => 'sympa.conf',
##    },
932

933
    {   'name'       => 'spool',
934
        'default_s'  => '$SPOOLDIR',
IKEDA Soji's avatar
IKEDA Soji committed
935
        'gettext_id' => 'Base directory of spools',
936
        'file'       => 'sympa.conf',
IKEDA Soji's avatar
IKEDA Soji committed
937
938
        'gettext_comment' =>
            'Base directory of all spools which are created at runtime. This directory must be writable by Sympa user.',
939
    },
940
    {   'name'       => 'queue',
941
        'default_s'  => '$SPOOLDIR/msg',
942
        'gettext_id' => 'Directory for message incoming spool',
IKEDA Soji's avatar
IKEDA Soji committed
943
        'gettext_comment' =>
944
            'This spool is used both by "queue" program and "sympa_msg.pl" daemon.',
IKEDA Soji's avatar
IKEDA Soji committed
945
        'file' => 'sympa.conf',
946
    },
947
    {   'name'       => 'queuemod',
948
        'default_s'  => '$SPOOLDIR/moderation',
949
        'gettext_id' => 'Directory for moderation spool',
950
        'file'       => 'sympa.conf',
951
    },
952
    {   'name'       => 'queuedigest',
953
        'default_s'  => '$SPOOLDIR/digest',
954
        'gettext_id' => 'Directory for digest spool',
955
        'file'       => 'sympa.conf',
956
    },
957
    {   'name'       => 'queueauth',
958
        'default_s'  => '$SPOOLDIR/auth',
IKEDA Soji's avatar
IKEDA Soji committed
959
960
961
962
        'gettext_id' => 'Directory for held message spool',
        'gettext_comment' =>
            'This parameter is named such by historical reason.',
        'file' => 'sympa.conf',
963
    },
964
    {   'name'       => 'queueoutgoing',
965
        'default_s'  => '$SPOOLDIR/outgoing',
966
        'gettext_id' => 'Directory for archive spool',
IKEDA Soji's avatar
IKEDA Soji committed
967
968
969
        'gettext_comment' =>
            'This parameter is named such by historical reason.',
        'file' => 'sympa.conf',
970
    },
971
972
973
974
975
#    {   'name'    => 'queuedistribute',
#        'default' => Sympa::Constants::SPOOLDIR . '/distribute',
#        'file'    => 'sympa.conf',
#    },
    ##{ queuesignoff: not yet implemented. },
976
    {   'name'       => 'queuesubscribe',
977
        'default_s'  => '$SPOOLDIR/subscribe',
IKEDA Soji's avatar
IKEDA Soji committed
978
979
980
981
        'gettext_id' => 'Directory for held request spool',
        'gettext_comment' =>
            'This parameter is named such by historical reason.',
        'file' => 'sympa.conf',
982
    },
983
    {   'name'       => 'queuetopic',
984
        'default_s'  => '$SPOOLDIR/topic',
985
        'gettext_id' => 'Directory for topic spool',
986
        'file'       => 'sympa.conf',
987
    },
988
    {   'name'       => 'queuebounce',
989
        'default_s'  => '$SPOOLDIR/bounce',
990
        'gettext_id' => 'Directory for bounce incoming spool',
IKEDA Soji's avatar
IKEDA Soji committed
991
992
993
        'gettext_comment' =>
            'This spool is used both by "bouncequeue" program and "bounced.pl" daemon.',
        'file' => 'sympa.conf',
994
    },
995
    {   'name'       => 'queuetask',
996
        'default_s'  => '$SPOOLDIR/task',
997
        'gettext_id' => 'Directory for task spool',