Ubuntu Manpages

sympa.conf, robot.conf

Configuration file for default site and robot

/etc/sympa/sympa/sympa.conf is main configuration file of Sympa. Several parameters defined in this file may be overridden by robot.conf configuration file for each virtual domain, or by config configuration file for each mailing list.

Format of sympa.conf and robot.conf is as following:

  • Lines beginning with "#" and containing only spaces are ignored.
  • Each line has the form "parameter value". value may contain spaces but may not contain newlines.

Below is entire list of configuration parameters. "Default" is built-in default value if any. "Overrides" lists contexts (with parameter name) which can override settings in site-wide context (sympa.conf): Virtual domain (robot.conf) and/or List (config).

"domain"

Primary mail domain name

None, mandatory.
Virtual domain

Example:

  domain mail.example.org

"listmaster"

Email addresses of listmasters

None, mandatory.
Virtual domain

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.

Example:

  listmaster your_email_address@domain.tld

"lang"

Default language

"en-US"
Virtual domain

List

This is the default language used by Sympa. One of supported languages should be chosen.

"supported_lang"

Supported languages

"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"
Virtual domain

All supported languages for the user interface. Languages proper locale information not installed are ignored.

"title"

Title of service

"Mailing lists service"
Virtual domain

The name of your mailing list service. It will appear in the header of web interface and subjects of several service messages.

"gecos"

Display name of Sympa

"SYMPA"
Virtual domain

This parameter is used for display name in the "From:" header field for the messages sent by Sympa itself.

"legacy_character_support_feature"

Support of legacy character set

"off"
None.

If set to "on", enables support of legacy character set according to charset.conf(5) configuration file.

In some language environments, legacy encoding (character set) can be preferred for e-mail messages: for example iso-2022-jp in Japanese language.

"update_db_field_types"

Update database structure

"auto"
None.

auto: Updates database table structures automatically.

However, since version 5.3b.5, Sympa will not shorten field size if it already have been longer than the size defined in database definition.

"db_type"

Type of the database

"mysql"
None.

Possible types are "MySQL", "PostgreSQL", "Oracle", "Sybase" and "SQLite".

"db_host"

Hostname of the database server

"localhost"
None.

With PostgreSQL, you can also use the path to Unix Socket Directory, e.g. "/var/run/postgresql" for connection with Unix domain socket.

Example:

  db_host localhost

"db_port"

Port of the database server

None.
None.

"db_name"

Name of the database

"sympa"
None.

With SQLite, this must be the full path to database file. With Oracle Database, this must be Oracle SID.

"db_user"

User for the database connection

"user_name"
None.

Example:

  db_user sympa

"db_passwd"

Password for the database connection

"user_password"
None.

What ever you use a password or not, you must protect the SQL server (is it not a public internet service ?)

Example:

  db_passwd your_passwd

"db_options"

Database options

None.
None.

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.

Example:

  db_options mysql_read_default_file=/home/joe/my.cnf;mysql_socket=tmp/mysql.sock-test

"db_env"

Environment variables setting for database

None.
None.

With Oracle Database, this is useful for defining ORACLE_HOME and NLS_LANG.

Example:

  db_env NLS_LANG=American_America.AL32UTF8;ORACLE_HOME=/u01/app/oracle/product/11.2.0/server

"db_timeout"

Database processing timeout

None.
None.

Currently, this parameter may be used for SQLite only.

"db_additional_subscriber_fields"

Database private extension to subscriber table

None.
None.

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:

* for scenarios: [subscriber->field]

* for templates: [% subscriber.field %]

These 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.

You need to extend the database format with these fields

Example:

  db_additional_subscriber_fields billing_delay,subscription_expiration

"db_additional_user_fields"

Database private extension to user table

None.
None.

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 %]

This parameter is a comma-separated list.

You need to extend the database format with these fields

Example:

  db_additional_user_fields age,address

"syslog"

System log facility for Sympa

"LOCAL1"
None.

Do not forget to configure syslog server.

"log_socket_type"

Communication mode with syslog server

"unix"
None.

"log_level"

Log verbosity

0
Virtual domain

Sets the verbosity of logs.

0: Only main operations are logged

3: Almost everything is logged.

Example:

  log_level 2

"aliases_program"

Program used to update alias database

"newaliases"
Virtual domain

This may be "makemap", "newaliases", "postalias", "postmap" or full path to custom program.

"aliases_db_type"

Type of alias database

"hash"
Virtual domain

"btree", "dbm", "hash" and so on. Available when aliases_program is "makemap", "postalias" or "postmap"

"sendmail_aliases"

Path of the file that contains all list related aliases

$SENDMAIL_ALIASES
Virtual domain

It is recommended to create a specific alias file so that Sympa never overwrites the standard alias file, but only a dedicated file.

Set this parameter to "none" if you want to disable alias management in Sympa.

"alias_manager"

Path to alias manager

"$SBINDIR/alias_manager.pl"
None.

The absolute path to the script that will add/remove mail aliases

Example:

  alias_manager /usr/local/libexec/ldap_alias_manager.pl

"default_max_list_members"

Default maximum number of list members

0
Virtual domain

List ("max_list_members")

Default limit for the number of subscribers per list (0 means no limit).

"max_size"

Maximum size of messages

5242880 (bytes)
Virtual domain

List

Incoming messages smaller than this size is allowed distribution by Sympa.

Example:

  max_size 2097152

"reject_mail_from_automates_feature"

Reject mail sent from automated services to list

"on"
List

Rejects messages that seem to be from automated services, based on a few header fields ("Content-Identifier:", "Auto-Submitted:").

Sympa also can be configured to reject messages based on the "From:" header field value (see "loop_prevention_regex").

Example:

  reject_mail_from_automates_feature off

"sender_headers"

Header field name(s) used to determine sender of the messages

"From"
None.

"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".

Example:

  sender_headers Resent-From,From,Return-Path

"misaddressed_commands"

Reject misaddressed commands

"reject"
None.

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".

"misaddressed_commands_regexp"

Regular expression matching with misaddressed commands

"((subscribe\s+(\S+)|unsubscribe\s+(\S+)|signoff\s+(\S+)|set\s+(\S+)\s+(mail|nomail|digest))\s*)"
None.

Perl regular expression applied on messages subject and body to detect misaddressed commands.

"sympa_priority"

Priority for command messages

1
Virtual domain

Priority applied to messages sent to Sympa command address.

"request_priority"

Priority for messages bound for list owners

0
Virtual domain

Priority for processing of messages bound for "LIST-request" address, i.e. owners of the list

"owner_priority"

Priority for non-VERP bounces

9
Virtual domain

Priority for processing of messages bound for "LIST-owner" address, i.e. non-delivery reports (bounces).

"default_list_priority"

Default priority for list messages

5
Virtual domain

List ("priority")

Priority for processing of messages posted to list addresses.

"incoming_max_count"

Max number of sympa.pl workers

1
None.

Max number of workers of sympa.pl daemon processing incoming spool.

"sleep"

Interval between scanning incoming message spool

5 (seconds)
None.

Must not be 0.

"anonymous_header_fields"

Header fields removed when a mailing list is setup in anonymous mode

"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"
None.

See "anonymous_sender" list parameter.

Default value prior to Sympa 6.1.19 is:

  Sender,X-Sender,Received,Message-id,From,X-Envelope-To,Resent-From,Reply-To,Organization,Disposition-Notification-To,X-Envelope-From,X-X-Sender

"merge_feature"

Allow message personalization by default

"off"
List

This parameter defines the default "merge_feature" list parameter.

"remove_headers"

Header fields to be removed from incoming messages

"X-Sympa-To,X-Family-To,Return-Receipt-To,Precedence,X-Sequence,Disposition-Notification-To,Sender"
List

Use it, for example, to ensure some privacy for your users in case that "anonymous_sender" mode is inappropriate.

The removal of these header fields is applied before Sympa adds its own header fields ("rfc2369_header_fields" and "custom_header").

Example:

  remove_headers Resent-Date,Resent-From,Resent-To,Resent-Message-Id,Sender,Delivered-To

"remove_outgoing_headers"

Header fields to be removed before message distribution

"none"
List

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.

Example:

  remove_outgoing_headers X-no-archive

"rfc2369_header_fields"

RFC 2369 header fields

"help,subscribe,unsubscribe,post,owner,archive"
List

Specify which RFC 2369 mailing list header fields to be added.

"List-Id:" header field defined in RFC 2919 is always added. Sympa also adds "Archived-At:" header field defined in RFC 5064.

"urlize_min_size"

Minimum size to be urlized

10240 (bytes)
Virtual domain

When a subscriber chose "urlize" reception mode, attachments not smaller than this size will be urlized.

"allowed_external_origin"

Allowed external links in sanitized HTML

None.
Virtual domain

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.

Example:

  allowed_external_origin *.example.org,www.example.com

"sympa_packet_priority"

Default priority for a packet

5
Virtual domain

The default priority set to a packet to be sent by the bulk.

"bulk_fork_threshold"

Fork threshold of bulk daemon

1
None.

The minimum number of packets before bulk daemon forks the new worker to increase sending rate.

"bulk_max_count"

Maximum number of bulk workers

3
None.

"bulk_lazytime"

Idle timeout of bulk workers

600 (seconds)
None.

The number of seconds a bulk worker will remain running without processing a message before it spontaneously exists.

"bulk_sleep"

Sleep time of bulk workers

1 (seconds)
None.

The number of seconds a bulk worker sleeps between starting a new loop if it didn't find a message to send.

Keep it small if you want your server to be reactive.

"bulk_wait_to_fork"

Interval between checks of packet numbers

10 (seconds)
None.

Number of seconds a master bulk daemon waits between two packets number checks.

Keep it small if you expect brutal increases in the message sending load.

"sendmail"

Path to sendmail

"/usr/sbin/sendmail"
None.

Absolute path to sendmail command line utility (e.g.: a binary named "sendmail" is distributed with Postfix).

Sympa expects this binary to be sendmail compatible (exim, Postfix, qmail and so on provide it). Sympa also bundles "sympa_smtpc" program which may be a replacement to sendmail binary.

"sendmail_args"

Command line parameters passed to sendmail

"-oi -odi -oem"
None.

Note that "-f", "-N" and "-V" options and recipient addresses need not included, because they will be included by Sympa.

Note: If the path to sympa_smtpc is set as a value of "sendmail" parameter, "--esmtp" or "--lmtp" option is required.

"log_smtp"

Log invocation of sendmail

"off"
Virtual domain

This can be overwritten by "-m" option for sympa.pl.

"maxsmtp"

Maximum number of sendmail processes

40
None.

Maximum number of simultaneous child processes spawned by Sympa. This is the main load control parameter.

Proposed value is quite low, but you can rise it up to 100, 200 or even 300 with powerful systems.

Example:

  maxsmtp 500

"nrcpt"

Maximum number of recipients per call to sendmail

25
None.

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.

"avg"

Maximum number of different mail domains per call to sendmail

10
None.

"create_list"

Who is able to create lists

"public_listmaster"
Virtual domain

Value of this parameter is name of "create_list" scenario.

Defines who can create lists (or request list creation) by creating new lists or by renaming or copying existing lists.

Example:

  create_list intranet

"allow_subscribe_if_pending"

Allow adding subscribers to a list not open

"on"
Virtual domain

If set to "off", adding subscribers to, or removing subscribers from a list with status other than "open" is forbidden.

"global_remind"

Who is able to send remind messages over all lists

"listmaster"
None.

Value of this parameter is name of "global_remind" scenario.

"move_user"

Who is able to change user's email

"auth"
Virtual domain

Value of this parameter is name of "move_user" scenario.

"use_blacklist"

Use blacklist

"send,create_list"
Virtual domain

List of operations separated by comma for which blacklist filter is applied. Setting this parameter to "none" will hide the blacklist feature.

"owner_domain"

List of required domains for list owner addresses

None.
Virtual domain

List

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.

Example:

  owner_domain domain1.tld domain2.tld

"owner_domain_min"

Minimum number of list owners that must match owner_domain restriction

0
Virtual domain

List

Minimum number of list owners that 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 a mailing list.

Example:

  owner_domain_min 1

"process_archive"

Store distributed messages into archive

"off"
Virtual domain

List

If enabled, distributed messages via lists will be archived. Otherwise archiving is disabled.

Note that even if setting this parameter disabled, past archives will not be removed and will be accessible according to access settings by each list.

"default_archive_quota"

Default disk quota for lists' archive

None (Kbytes).
List ("archive.quota")

"ignore_x_no_archive_header_feature"

Ignore "X-no-archive:" header field

"off"
None.

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.

Example:

  ignore_x_no_archive_header_feature on

"custom_archiver"

Custom archiver

None.
None.

Activates a custom archiver to use instead of MHonArc. The value of this parameter is the absolute path to the executable file.

Sympa invokes this file with these two arguments:

--list

The address of the list including domain part.

--file

Absolute path to the message to be archived.

"mhonarc"

Path to MHonArc mail-to-HTML converter

"/usr/bin/mhonarc"
Virtual domain

This is required for HTML mail archiving.

"bounce_warn_rate"

Default bounce warn rate

30
List ("bounce.warn_rate")

The list owner receives a warning whenever a message is distributed and the number (percentage) of bounces exceeds this value.

"bounce_halt_rate"

Default bounce halt rate

50
None.

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.

"default_bounce_level1_rate"

Default bounce management threshold, 1st level

45
Virtual domain

List ("bouncers_level1.rate")

"default_bounce_level2_rate"

Default bounce management threshold, 2nd level

75
Virtual domain

List ("bouncers_level2.rate")

"verp_rate"

Percentage of list members in VERP mode

"0%"
Virtual domain

List

Uses variable envelope return path (VERP) to detect bouncing subscriber addresses.

0%: VERP is never used.

100%: VERP is always in use.

VERP 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.

"tracking_delivery_status_notification"

Tracking message by delivery status notification (DSN)

"off"
List ("tracking.delivery_status_notification")

"tracking_message_disposition_notification"

Tracking message by message disposition notification (MDN)

"off"
List ("tracking.message_disposition_notification")

"tracking_default_retention_period"

Max age of tracking information

90 (days)
List ("tracking.retention_period")

Tracking information are removed after this number of days

"welcome_return_path"

Remove bouncing new subscribers

"owner"
List

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.

"remind_return_path"

Remove subscribers bouncing remind message

"owner"
List

Same as welcome_return_path, but applied to remind messages.

"default_remind_task"

Periodical subscription reminder task

None.
List ("remind_task")

This task regularly sends subscribers a message which reminds them of their list subscriptions.

"expire_bounce_task"

Task for expiration of old bounces

"daily"
None.

This task resets bouncing information for addresses not bouncing in the last 10 days after the latest message distribution.

"purge_orphan_bounces_task"

Task for cleaning invalidated bounces

"monthly"
None.

This task deletes bounce information for unsubscribed users.

"eval_bouncers_task"

Task for updating bounce scores

"daily"
None.

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.

"process_bouncers_task"

Task for management of bouncers

"weekly"
None.

This task executes actions on bouncing users configured by each list, according to their scores.

"purge_tables_task"

Task for cleaning tables

"daily"
None.

This task cleans old tracking information from "notification_table" table.

"minimum_bouncing_count"

Minimum number of bounces

10
None.

The minimum number of bounces received to update bounce score of a user.

"minimum_bouncing_period"

Minimum bouncing period

10 (days)
None.

The minimum period for which bouncing lasted to update bounce score of a user.

"bounce_delay"

Delay of bounces

0 (days)
None.

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.

"bounce_email_prefix"

"bounce"
None.

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.

If you change the default value, you must modify the mail aliases too.

"return_path_suffix"

Suffix of list return address

"-owner"
None.

The suffix appended to the list name to consist the return-path of messages distributed through the list. This address will receive all non-delivery reports (also called bounces).

"loop_command_max"

Maximum number of responses to command message

200
None.

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.

"loop_command_sampling_delay"

Delay before counting responses to command message

3600 (seconds)
None.

This parameter defines the delay in seconds before decrementing the counter of reports sent to an email address.

"loop_command_decrease_factor"

Decrementing factor of responses to command message

0.5
None.

The decrementation factor (from 0 to 1), used to determine the new report counter after expiration of the delay.

"loop_prevention_regex"

Regular expression to prevent loop

"mailer-daemon|sympa|listserv|majordomo|smartlist|mailman"
Virtual domain

List

If the sender address matches the regular expression, then the message is rejected.

"msgid_table_cleanup_ttl"

Expiration period of message ID table

86400 (seconds)
None.

Expiration period of entries in the table maintained by sympa_msg.pl daemon to prevent delivery of duplicate messages caused by loop.

"msgid_table_cleanup_frequency"

Cleanup interval of message ID table

3600 (seconds)
None.

Interval between cleanups of the table maintained by sympa_msg.pl daemon to prevent delivery of duplicate messages caused by loop.

"automatic_list_removal"

Remove empty automatic list

"none"
Virtual domain

If set to "if_empty", then Sympa will remove automatically created mailing lists just after their creation, if they contain no list member.

Example:

  automatic_list_removal if_empty

"automatic_list_feature"

Automatic list

"off"
Virtual domain

"automatic_list_creation"

Who is able to create automatic list

"public"
Virtual domain

Value of this parameter is name of "automatic_list_creation" scenario.

"automatic_list_families"

Definition of automatic list families

None.
Virtual domain

Defines the families the automatic lists are based on. It is a character string structured as follows:

* each family is separated from the other by a semi-column (;)

* inside a family definition, each field is separated from the other by a column (:)

* each field has the structure: "<field name>=<filed value>"

Basically, each time Sympa uses the automatic lists families, the values defined in this parameter will be available in the family object.

* for scenarios: [family->name]

* for templates: [% family.name %]

Example:

  automatic_list_families 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;

"parsed_family_files"

Parsed files for families

"message.footer,message.header,message.footer.mime,message.header.mime,info"
Virtual domain

comma-separated list of files that will be parsed by Sympa when instantiating a family (no space allowed in file names)

"antispam_feature"

Tag based spam filtering

"off"
Virtual domain

"antispam_tag_header_name"

Header field to tag spams

"X-Spam-Status"
Virtual domain

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)

"antispam_tag_header_spam_regexp"

Regular expression to check header field to tag spams

"^\s*Yes"
Virtual domain

Regular expression applied on this header to verify message is a spam (example Yes)

"antispam_tag_header_ham_regexp"

Regular expression to determine spam or ham.

"^\s*No"
Virtual domain

Regular expression applied on this header field to verify message is NOT a spam (example No)

"spam_status"

Name of header field to inform

"x-spam-status"
Virtual domain

Value of this parameter is name of "spam_status" scenario.

Messages are supposed to be filtered by an spam filter that add one more headers to messages. This parameter is used to select a special scenario in order to decide the message spam status: ham, spam or unsure. This parameter replace antispam_tag_header_name, antispam_tag_header_spam_regexp and antispam_tag_header_ham_regexp.

"home"

List home

$EXPLDIR
None.

Base directory of list configurations.

"etc"

Directory for configuration files

$SYSCONFDIR
None.

Base directory of global configuration (except "sympa.conf").

"spool"

Base directory of spools

$SPOOLDIR
None.

Base directory of all spools which are created at runtime. This directory must be writable by Sympa user.

"queue"

Directory for message incoming spool

"$SPOOLDIR/msg"
None.

This spool is used both by "queue" program and "sympa_msg.pl" daemon."

"queuemod"

Directory for moderation spool

"$SPOOLDIR/moderation"
None.

"queuedigest"

Directory for digest spool

"$SPOOLDIR/digest"
None.

"queueauth"

Directory for held message spool

"$SPOOLDIR/auth"
None.

This parameter is named such by historical reason.

"queueoutgoing"

Directory for archive spool

"$SPOOLDIR/outgoing"
None.

This parameter is named such by historical reason.

"queuesubscribe"

Directory for held request spool

"$SPOOLDIR/subscribe"
None.

This parameter is named such by historical reason.

"queuetopic"

Directory for topic spool

"$SPOOLDIR/topic"
None.

"queuebounce"

Directory for bounce incoming spool

"$SPOOLDIR/bounce"
None.

This spool is used both by "bouncequeue" program and "bounced.pl" daemon.

"queuetask"

Directory for task spool

"$SPOOLDIR/task"
None.

"queueautomatic"

Directory for automatic list creation spool

"$SPOOLDIR/automatic"
None.

This spool is used both by "familyqueue" program and "sympa_automatic.pl" daemon.

"queuebulk"

Directory for message outgoing spool

"$SPOOLDIR/bulk"
None.

This parameter is named such by historical reason.

"tmpdir"

Temporary directory used by external programs such as virus scanner. Also, outputs to daemons' standard error are redirected to the files under this directory.

"$SPOOLDIR/tmp"
None.

"viewmail_dir"

Directory to cache formatted messages

"$SPOOLDIR/viewmail"
None.

Base directory path of directories where HTML view of messages are cached.

"bounce_path"

Directory for storing bounces

$BOUNCEDIR
None.

The directory where bounced.pl daemon will store the last bouncing message for each user. A message is stored in the file: <bounce_path>/<list name>@<mail domain name>/<email address>, or, if tracking is enabled: <bounce_path>/<list name>@<mail domain name>/<email address>_<envelope ID>.

Users can access to these messages using web interface in the bounce management page.

Don't confuse with "queuebounce" parameter which defines the spool where incoming error reports are stored and picked by bounced.pl daemon.

"arc_path"

Directory for storing archives

$ARCDIR
Virtual domain

Where to store HTML archives. This parameter is used by the "archived.pl" daemon. It is a good idea to install the archive outside the web document hierarchy to ensure accesses passing WWSympa's access control will be prevented.

"purge_spools_task"

Task for cleaning spools

"daily"
None.

This task cleans old content in spools.

"clean_delay_queue"

Max age of incoming bad messages

7 (days)
None.

Number of days "bad" messages are kept in message incoming spool (as specified by "queue" parameter). Sympa keeps messages rejected for various reasons (badly formatted, looping etc.).

"clean_delay_queueoutgoing"

Max age of bad messages for archives

7 (days)
None.

Number of days "bad" messages are kept in message archive spool (as specified by "queueoutgoing" parameter). Sympa keeps messages rejected for various reasons (unable to create archive directory, to copy file etc.).

"clean_delay_queuebounce"

Max age of bad bounce messages

7 (days)
None.

Number of days "bad" messages are kept in bounce spool (as specified by "queuebounce" parameter). Sympa keeps messages rejected for various reasons (unknown original sender, unknown report type).

"clean_delay_queuemod"

Max age of moderated messages

30 (days)
List

Number of days messages are kept in moderation spool (as specified by "queuemod" parameter). Beyond this deadline, messages that have not been processed are deleted.

"clean_delay_queueauth"

Max age of held messages

30 (days)
None.

Number of days messages are kept in held message spool (as specified by "queueauth" parameter). Beyond this deadline, messages that have not been confirmed are deleted.

"clean_delay_queuesubscribe"

Max age of held requests

30 (days)
None.

Number of days requests are kept in held request spool (as specified by "queuesubscribe" parameter). Beyond this deadline, requests that have not been validated nor declined are deleted.

"clean_delay_queuetopic"

Max age of tagged topics

30 (days)
None.

Number of days (automatically or manually) tagged topics are kept in topic spool (as specified by "queuetopic" parameter). Beyond this deadline, tagging is forgotten.

"clean_delay_queueautomatic"

Max age of incoming bad messages in automatic list creation spool

10 (days)
None.

Number of days "bad" messages are kept in automatic list creation spool (as specified by "queueautomatic" parameter). Sympa keeps messages rejected for various reasons (badly formatted, looping etc.).

"clean_delay_queuebulk"

Max age of outgoing bad messages

7 (days)
None.

Number of days "bad" messages are kept in message outgoing spool (as specified by "queuebulk" parameter). Sympa keeps messages rejected for various reasons (failed personalization, bad configuration on MTA etc.).

"clean_delay_queuedigest"

Max age of bad messages in digest spool

14 (days)
None.

Number of days "bad" messages are kept in digest spool (as specified by "queuedigest" parameter). Sympa keeps messages rejected for various reasons (syntax errors in "digest.tt2" template etc.).

"clean_delay_tmpdir"

Max age of temporary files

7 (days)
None.

Number of days files in temporary directory (as specified by "tmpdir" parameter), including standard error logs, are kept.

"email"

Local part of Sympa email address

"sympa"
Virtual domain

Local part (the part preceding the "@" sign) of the address by which mail interface of Sympa accepts mail commands.

If you change the default value, you must modify the mail aliases too.

"listmaster_email"

Local part of listmaster email address

"listmaster"
Virtual domain

Local part (the part preceding the "@" sign) of the address by which listmasters receive messages.

If you change the default value, you must modify the mail aliases too.

"custom_robot_parameter"

Custom robot parameter

None.
Virtual domain

Used to define a custom parameter for your server. Do not forget the semicolon between the parameter name and the parameter value.

You will be able to access the custom parameter value in web templates by variable "conf.custom_robot_parameter.<param_name>"

Example:

  custom_robot_parameter param_name ; param_value

"cache_list_config"

Use of binary cache of list configuration

"none"
None.

binary_file: Sympa processes will maintain a binary version of the list configuration, "config.bin" file on local disk. If you manage a big amount of lists (1000+), it should make the web interface startup faster.

You can recreate cache by running "sympa.pl --reload_list_config".

"db_list_cache"

Use database cache to search lists

"off"
None.

Note that "list_table" database table should be filled at the first time by running:

  # sympa.pl --sync_list_db

"purge_user_table_task"

Task for expiring inactive users

"monthly"
None.

This task removes rows in the "user_table" table which hove not corresponding entries in the "subscriber_table" table.

"purge_logs_table_task"

Task for cleaning tables

"daily"
None.

This task cleans old logs from "logs_table" table.

"logs_expiration_period"

Max age of logs in database

3 (months)
None.

Number of months that elapse before a log is expired

"stats_expiration_period"

Max age of statistics information in database

3 (months)
None.

Number of months that elapse before statistics information are expired

"umask"

Umask

027
None.

Default mask for file creation (see umask(2)). Note that it will be interpreted as an octal value.

"cookie"

Secret string for generating unique keys

None.
List

This allows generated authentication keys to differ from a site to another. It is also used for encryption of user passwords stored in the database. The presence of this string is one reason why access to "sympa.conf" needs to be restricted to the "sympa" user.

Note that changing this parameter will break all HTTP cookies stored in users' browsers, as well as all user passwords and lists X509 private keys. To prevent a catastrophe, Sympa refuses to start if this "cookie" parameter was changed.

Example:

  cookie 123456789

"wwsympa_url"

URL prefix of web interface

None, mandatory.
Virtual domain

This is used to construct URLs of web interface.

Example:

  wwsympa_url http://web.example.org/sympa

"http_host"

URL prefix of WWSympa behind proxy

None.
Virtual domain

"static_content_url"

URL for static contents

"/static-sympa"
Virtual domain

HTTP server have to map it with "static_content_path" directory.

"static_content_path"

Directory for static contents

$STATICDIR
Virtual domain

"log_facility"

System log facility for web interface

"LOCAL1"
None.

System log facility for WWSympa, archived.pl and bounced.pl. Default is to use value of "syslog" parameter.

"logo_html_definition"

Custom logo

None.
Virtual domain

HTML fragment to insert a logo in the page of web interface.

Example:

  logo_html_definition <a href="http://www.example.com"><img style="float: left; margin-top: 7px; margin-left: 37px;" src="http://www.example.com/logos/mylogo.jpg" alt="My Company" /></a>

"favicon_url"

Custom favicon

None.
Virtual domain

URL of favicon image

"css_path"

Directory for static style sheets (CSS)

None.
Virtual domain

After an upgrade, static CSS files are upgraded with the newly installed "css.tt2" template. Therefore, this is not a good place to store customized CSS files.

"css_url"

URL for style sheets (CSS)

None.
Virtual domain

To use auto-generated static CSS, HTTP server have to map it with "css_path".

"color_0", ..., "color_15"

Colors for web interface

See description on web interface.
Virtual domain

Colors are used in style sheet (CSS). They may be changed using web interface by listmasters.

"dark_color", "light_color", "text_color", "bg_color", "error_color", "selected_color", "shaded_color"

Colors for web interface, obsoleted

See description on web interface.
Virtual domain

"default_home"

Type of main web page

"home"
Virtual domain

"lists" for the page of list of lists. "home" for home page.

"archive_default_index"

Default index organization of web archive

"thrd"
None.

thrd: Threaded index.

mail: Chronological index.

"review_page_size"

Size of review page

25
Virtual domain

Default number of lines of the array displaying users in the review page

"viewlogs_page_size"

Size of viewlogs page

25
Virtual domain

Default number of lines of the array displaying the log entries in the logs page.

"main_menu_custom_button_1_title", ... "main_menu_custom_button_3_title", "main_menu_custom_button_1_url", ... "main_menu_custom_button_3_url", "main_menu_custom_button_1_target", ... "main_menu_custom_button_3_target"

Custom menus

None.
Virtual domain

You may modify the main menu content by editing the menu.tt2 file but you can also edit the these parameters in order to add up to 3 button. Each button is defined by a title (the text in the button), an URL and optionally a target.

Example:

  main_menu_custom_button_1_title FAQ
  main_menu_custom_button_1_url http://www.renater.fr/faq/universalistes/index
  main_menu_custom_button_1_target Help

"cookie_domain"

HTTP cookies validity domain

"localhost"
Virtual domain

If beginning with a dot ("."), the cookie is available within the specified Internet domain. Otherwise, for the specified host. The only reason for replacing the default value would be where WWSympa's authentication process is shared with an application running on another host.

Example:

  cookie_domain .renater.fr

"cookie_expire"

HTTP cookies lifetime

0
None.

This is the default value when not set explicitly by users. "0" means the cookie may be retained during browser session.

"cookie_refresh"

Average interval to refresh HTTP session ID.

60
None.

"purge_session_table_task"

Task for cleaning old sessions

"daily"
None.

This task removes old entries in the "session_table" table.

"session_table_ttl"

Max age of sessions

"2d"
None.

Session duration is controlled by "sympa_session" cookie validity attribute. However, by security reason, this delay also need to be controlled by server side. This task removes old entries in the "session_table" table.

Format of values is a string without spaces including "y" for years, "m" for months, "d" for days, "h" for hours, "min" for minutes and "sec" for seconds.

"anonymous_session_table_ttl"

"1h"
None.

"default_shared_quota"

Default disk quota for shared repository

None (Kbytes).
Virtual domain

List ("shared_doc.quota")

"use_html_editor"

Use HTML editor

0
Virtual domain

If set to "on", users will be able to post messages in HTML using a javascript WYSIWYG editor.

Example:

  use_html_editor on

"html_editor_url"

URL of HTML editor

None.
Virtual domain

URL path to the javascript file making the WYSIWYG HTML editor available. Relative path under <static_content_url> or absolute path.

Example is for TinyMCE 4 installed under <static_content_path>/js/tinymce/.

Example:

  html_editor_url js/tinymce/tinymce.min.js

"html_editor_init"

HTML editor initialization

None.
Virtual domain

Javascript excerpt that enables and configures the WYSIWYG HTML editor.

Example:

  html_editor_init tinymce.init({selector:"#body",language:lang.split(/[^a-zA-Z]+/).join("_")});

"htmlarea_url"

None.
None.

"max_wrong_password"

Count limit of wrong password submission

19
Virtual domain

If this limit is reached, the account is locked until the user renews their password. The default value is chosen in order to block bots trying to log in using brute force strategy. This value should never be reached by real users that will probably uses the renew password service before they performs so many tries.

"password_case"

Password case

"insensitive"
None.

"insensitive" or "sensitive".

If set to "insensitive", WWSympa's password check will be insensitive. This only concerns passwords stored in the Sympa database, not the ones in LDAP.

Should not be changed! May invalid all user password.

"one_time_ticket_lifetime"

Age of one time ticket

"2d"
None.

Duration before the one time tickets are expired

"one_time_ticket_lockout"

Restrict access to one time ticket

"one_time"
Virtual domain

Is access to the one time ticket restricted, if any users previously accessed? (one_time | remote_addr | open)

"purge_one_time_ticket_table_task"

"daily"
None.

"one_time_ticket_table_ttl"

"10d"
None.

"pictures_feature"

Pictures

"on"
List

Enables or disables the pictures feature by default. If enabled, subscribers can upload their picture (from the "Subscriber option" page) to use as an avatar.

Pictures are stored in a directory specified by the "static_content_path" parameter.

"pictures_max_size"

The maximum size of uploaded picture

102400 (bytes)
Virtual domain

"spam_protection"

Protect web interface against spam harvesters

"javascript"
Virtual domain

These values are supported:

javascript: the address is hidden using a javascript. Users who enable Javascript can see nice mailto addresses where others have nothing.

at: the "@" character is replaced by the string "AT".

none: no protection against spam harvesters.

"web_archive_spam_protection"

Protect web archive against spam harvesters

"cookie"
Virtual domain

List

The same as "spam_protection", but restricted to the web archive.

In addition to it:

cookie: users must submit a small form in order to receive a cookie before browsing the web archive.

"reporting_spam_script_path"

Script to report spam

None.
Virtual domain

If set, when a list editor report undetected spams for list moderation, this external script is invoked and the message is injected into standard input of the script.

S/MIME authentication, decryption and re-encryption. It requires these external modules: Crypt-OpenSSL-X509 and Crypt-SMIME.

TLS client authentication. It requires an external module: IO-Socket-SSL.

"cafile"

File containing trusted CA certificates

None.
None.

This can be used alternatively and/or additionally to "capath".

"capath"

Directory containing trusted CA certificates

None.
None.

CA certificates in this directory are used for client authentication.

The certificates need to have names including hash of subject, or symbolic links to them with such names. The links may be created by using "c_rehash" script bundled in OpenSSL.

"key_passwd"

Password used to crypt lists private keys

None.
None.

If not defined, Sympa assumes that list private keys are not encrypted.

Example:

  key_passwd your_password

"ssl_cert_dir"

Directory containing user certificates

"$EXPLDIR/X509-user-certs"
None.

Including subscribers, owners and editors from datasources. Appropriate database driver (DBD) modules are required: DBD-CSV, DBD-mysql, DBD-ODBC, DBD-Oracle, DBD-Pg, DBD-SQLite, DBD-Sybase and/or Net-LDAP. And also, if secure connection (LDAPS) to LDAP server is required: IO-SOcket-SSL.

"default_sql_fetch_timeout"

Default of SQL fetch timeout

300
List ("sql_fetch_timeout")

Default timeout while performing a fetch with include_sql_query.

DKIM

DKIM signature verification and re-signing. It requires an external module: Mail-DKIM.

"dkim_feature"

Enable DKIM

"off"
Virtual domain

List

If set to "on", Sympa may verify DKIM signatures of incoming messages and/or insert DKIM signature to outgoing messages.

"dkim_add_signature_to"

Which service messages to be signed

"robot,list"
Virtual domain

Inserts a DKIM signature to service messages in context of robot, list or both

"dkim_private_key_path"

File path for DKIM private key

None.
Virtual domain

List ("dkim_parameters.private_key_path")

The file must contain a PEM encoded private key

"dkim_signature_apply_on"

Which messages delivered via lists to be signed

"md5_authenticated_messages,smime_authenticated_messages,dkim_authenticated_messages,editor_validated_messages"
Virtual domain

List

Type of message that is added a DKIM signature before distribution to subscribers. Possible values are "none", "any" or a list of the following keywords: "md5_authenticated_messages", "smime_authenticated_messages", "dkim_authenticated_messages", "editor_validated_messages".

"dkim_signer_domain"

The "d=" tag as defined in rfc 4871

None.
Virtual domain

List ("dkim_parameters.signer_domain")

The DKIM "d=" tag, is the domain of the signing entity. Default is virtual host domain name

"dkim_signer_identity"

The "i=" tag as defined in rfc 4871

None.
Virtual domain

Default is null.

"dkim_selector"

Selector for DNS lookup of DKIM public key

None.
Virtual domain

List ("dkim_parameters.selector")

The selector is used in order to build the DNS query for public key. It is up to you to choose the value you want but verify that you can query the public DKIM key for "<selector>._domainkey.your_domain"

DMARC protection

Processes originator addresses to avoid some domains' excessive DMARC protection. This feature requires external module: Net-DNS.

"dmarc_protection_mode"

Test mode(s) for DMARC Protection

None.
Virtual domain

List ("dmarc_protection.mode")

Do not set unless you want to use DMARC protection.

This is a comma separated list of test modes; if multiple are selected then protection is activated if ANY match. Do not use dmarc_* modes unless you have a local DNS cache as they do a DNS lookup for each received message.

Example:

  dmarc_protection_mode dmarc_reject,dkim_signature

"dmarc_protection_domain_regex"

Regular expression for domain name match

None.
Virtual domain

List ("dmarc_protection.domain_regex")

This is used for the "domain_regex" protection mode.

"dmarc_protection_phrase"

New From name format

"name_via_list"
Virtual domain

List ("dmarc_protection.phrase")

This is the format to be used for the sender name part of the new From header field.

"dmarc_protection_other_email"

New From address

None.
Virtual domain

List ("dmarc_protection.other_email")

Checks if ailias with the same name as the list to be created already exists on the SMTP server. This feature requires external module: Net-SMTP.

"list_check_helo"

SMTP HELO (EHLO) parameter used for address verification

None.
Virtual domain

Default value is the host part of "list_check_smtp" parameter.

"list_check_smtp"

SMTP server to verify existence of the same addresses as the list to be created

None.
Virtual domain

This is needed if you are running Sympa on a host but you handle all your mail on a separate mail relay.

Default value is real FQDN of the host. Port number may be specified as "mail.example.org:25" or "203.0.113.1:25". If port is not specified, standard port (25) will be used.

"list_check_suffixes"

Address suffixes to verify

"request,owner,editor,unsubscribe,subscribe"
Virtual domain

List of suffixes you are using for list addresses, i.e. "mylist-request", "mylist-owner" and so on.

This parameter is used with the "list_check_smtp" parameter. It is also used to check list names at list creation time.

"antivirus_path"

Path to the antivirus scanner engine

None.
Virtual domain

Supported antivirus: Clam AntiVirus/clamscan & clamdscan, McAfee/uvscan, Fsecure/fsav, Sophos, AVP and Trend Micro/VirusWall

Example:

  antivirus_path /usr/local/bin/clamscan

"antivirus_args"

Antivirus plugin command line arguments

None.
Virtual domain

Example:

  antivirus_args --no-summary --database /usr/local/share/clamav

"antivirus_notify"

Notify sender if virus checker detects malicious content

"sender"
Virtual domain

"sender" to notify originator of the message, "delivery_status" to send delivery status, or "none"

Checks if the password the users sbmitted has sufficient strength. This feature requires external module: Data-Password.

"password_validation"

Password validation

None.
None.

The password validation techniques to be used against user passwords that are added to mailing lists. Options come from Data::Password (http://search.cpan.org/~razinf/Data-Password-1.07/Password.pm#VARIABLES)

Example:

  password_validation MINLEN=8,GROUPS=3,DICTIONARY=4,DICTIONARIES=/pentest/dictionaries

Authnticates users based on the directory on LDAP server. This feature requires external module: Net-LDAP. And also, if secure connection (LDAPS) is required: IO-Socket-SSL.

"ldap_force_canonical_email"

Use canonical email address for LDAP authentication

1
Virtual domain

When using LDAP authentication, if the identifier provided by the user was a valid email, if this parameter is set to false, then the provided email will be used to authenticate the user. Otherwise, use of the first email returned by the LDAP server will be used.

SOAP HTTP interface

Provides some functions of Sympa through SOAP HTTP interface. This feature requires external module: SOAP-Lite.

"soap_url"

URL of SympaSOAP

None.
Virtual domain

WSDL document of SympaSOAP refers to this URL in its service section.

Example:

  soap_url http://web.example.org/sympasoap

"soap_url_local"

URL of SympaSOAP behind proxy

None.
Virtual domain

"host"

None.
Virtual domain

List

"log_condition"

None.
Virtual domain

"log_module"

None.
Virtual domain

"purge_challenge_table_task"

"daily"
None.

"challenge_table_ttl"

"5d"
None.

"filesystem_encoding"

"utf-8"
None.

"automatic_list_prefix"

Defines the prefix allowing to recognize that a list is an automatic list.

None.
None.

"default_ttl"

Default timeout between two scheduled synchronizations of list members with data sources.

3600
None.

"default_distribution_ttl"

Default timeout between two action-triggered synchronizations of list members with data sources.

300
None.

"voot_feature"

"off"
None.

"edit_list"

"owner"
None.

"use_fast_cgi"

Enable FastCGI

1
None.

Is FastCGI module for HTTP server installed. This module provide much faster web interface.

/etc/sympa/sympa/sympa.conf
Sympa main configuration file.
$SYSCONFDIR/<robot name>/robot.conf
Configuration specific to each virtual domain.
$EXPLDIR/<list name>/config or $EXPLDIR/<robot name>/<list name>/config
Configuration specific to each list.

Sympa, Mailing List Management Software - Reference Manual. <http://www.sympa.org/manual/>.