SYMPA_CONFIG(5)

SYMPA_CONFIG(5) โ€” sympa 6.2.80 ๐Ÿ’…

okay bestie, this is the manual page for sympa_config, the config files of the Sympa mailing list manager. Itโ€™s giving โ€œthree layers of config realnessโ€ and weโ€™re gonna go through every last bit. No cap. ๐Ÿซถ

โœจ NAME โœจ

sympa_config โ€” Configuration files for Sympa mailing list manager

๐Ÿ’– DESCRIPTION ๐Ÿ’–

There are three levels in Sympaโ€™s main configuration: site global, mail domain and list. Three layers, like a cute little config parfait. ๐Ÿ“

๐Ÿ—‚๏ธ sympa.conf: Configuration file for global settings ๐Ÿ—‚๏ธ

/etc/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.

There are simple parameters and compound parameters.

The name of compound parameter consist of a paragraph name and a sub-parameter name separated by period ("."). However some compound parameters have simple synonym names to keep compatibility to earlier versions (See "Obsoleted sympa.conf parameters").

Example:

process_archive on
archive.web_access open
archive.mail_access closed

๐Ÿค– robot.conf: Optional configuration file for the mail domain ๐Ÿค–

robot.conf is the optional configuration file for each mail domain.

Format of robot.conf is the same as sympa.conf above.

๐Ÿ“ config: Configuration file for the mailing list ๐Ÿ“

config is main configuration file of each mailing list.

Format of config is as following:

  • Lines beginning with # and containing only spaces are ignored.
  • There are simple parameters and compound parameters:
    • A simple parameter is expressed by single line by each. The line has the form "parameter value". value may contain spaces but may not contain newlines.

Several parameters may have multiple values. If itโ€™s the case, values may be separated by comma (",") or parameter lines may be repeated. Some of parameters must have one or more of limited values.

Example:

subject This is subject of my list

remove_headers User-Agent,Importance

custom_headers X-List: mylist
custom_headers X-Face: %`-W7!?^]Sg'I-K>P<cdn&k:~A^{x>(]Gc{V...

rfc2369_header_fields post,owner
  • A compound parameter is expressed by multiple lines, so-called "paragraph", that consists of the first line specifying paragraph name and subsequent one or more sub-parameter lines. Paragraph must be separated by one or more empty lines from the other parameters.

Several multiple line parameters may occur multiple times.

Example:

archive
web_access open
mail_access closed

๐ŸŽ€ PARAMETERS ๐ŸŽ€

Below is entire list of configuration parameters.

  • Sub-parameters in paragraph are listed as paragraph"."sub-parameter by each.
  • "Default" is built-in default value if any. About symbols for paths, such as $SENDMAIL_ALIASES, see "Directory layout https://www.sympa.community/manual/layout.html".

๐ŸŒธ Service description ๐ŸŒธ

๐Ÿ’– domain ๐Ÿ’–

Primary mail domain name

Format:

/$domain/

Default: None, mandatory. Yes bestie, you HAVE to set this one. ๐Ÿ’…

Context: domain (robot.conf), site (sympa.conf)

Example:

domain mail.example.org

๐Ÿ’– listmaster ๐Ÿ’–

Email addresses of listmasters

Format: Multiple values allowed, separated by ",".

/$email/

Default: None, mandatory.

Context: domain (robot.conf), site (sympa.conf)

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

๐Ÿ’– supported_lang ๐Ÿ’–

Supported languages

Format:

/"\w+(\-\w+)*"/

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"

Context: domain (robot.conf), site (sympa.conf)

All supported languages for the user interface. Languages proper locale information not installed are ignored. No biggie. โœจ

๐Ÿ’– title ๐Ÿ’–

Title of service

Format:

/".+"/

Default:

"Mailing lists service"

Context: domain (robot.conf), site (sympa.conf)

The name of your mailing list service. It will appear in the header of web interface and subjects of several service messages. Itโ€™s giving main character energy. ๐Ÿ’–

๐Ÿ’– gecos ๐Ÿ’–

Display name of Sympa

Format:

/".+"/

Default:

"SYMPA"

Context: domain (robot.conf), site (sympa.conf)

Available versions:

6.2a.34 and later.

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

๐Ÿ’– legacy_character_support_feature ๐Ÿ’–

Support of legacy character set

Format:

"on" - enabled
"off" - disabled

Default:

"off"

Context: site (sympa.conf)

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. iykyk. ๐ŸŒธ

๐Ÿ’– update_db_field_types ๐Ÿ’–

Update database structure

Format:

"auto" - automatic
"off" - disabled

Default:

"auto"

Context: site (sympa.conf)

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

๐Ÿ’– db_type ๐Ÿ’–

Type of the database

Format:

/"\w+"/

Default:

"mysql"

Context: site (sympa.conf)

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

๐Ÿ’– db_name ๐Ÿ’–

Name of the database

Format:

/".+"/

Default:

"sympa"

Context: site (sympa.conf)

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

With Oracle Database, this must be SID, net service name or easy connection identifier (to use net service name, db_host should be set to "none" and HOST, PORT and SERVICE_NAME should be defined in tnsnames.ora file).

๐Ÿ’– db_host ๐Ÿ’–

Hostname of the database server

Format:

/$host/

Default: None.

Context: site (sympa.conf)

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

Format:

/"[-/\w]+"/

Default: None.

Context: site (sympa.conf)

๐Ÿ’– db_user ๐Ÿ’–

User for the database connection

Format:

/".+"/

Default: None.

Context: site (sympa.conf)

Example:

db_user sympa

๐Ÿ’– db_passwd ๐Ÿ’–

Password for the database connection

Format: The value to be concealed.

Default: None.

Context: site (sympa.conf)

What ever you use a password or not, you must protect the SQL server (is it not a public internet service ?) โ€” like, protect it bestie, no cap. ๐Ÿ”ฅ

Example:

db_passwd your_passwd

๐Ÿ’– db_options ๐Ÿ’–

Database options

Format:

/".+"/

Default: None.

Context: site (sympa.conf)

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

Format:

/".+"/

Default: None.

Context: site (sympa.conf)

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

Format:

/"\d+"/

Default: None.

Context: site (sympa.conf)

Currently, this parameter may be used for SQLite only.

๐Ÿ’– db_additional_subscriber_fields ๐Ÿ’–

Database private extension to subscriber table

Format: Multiple values allowed, separated by ",".

/".+"/

Default: None.

Context: site (sympa.conf)

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

Format: Multiple values allowed, separated by ",".

/".+"/

Default: None.

Context: site (sympa.conf)

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

๐Ÿ“œ System log ๐Ÿ“œ

๐Ÿ’– syslog ๐Ÿ’–

System log facility for Sympa

Format:

/"\S+"/

Default:

"LOCAL1"

Context: site (sympa.conf)

Do not forget to configure syslog server. seriously. ๐Ÿซถ

๐Ÿ’– syslog_socket ๐Ÿ’–

(Paragraph) System log socket options

Single occurrence

The options to be used for system log socket. Options come from Sys::Syslog https://metacpan.org/pod/Sys::Syslog#setlogsock%28%29

๐Ÿ’– syslog_socket.type ๐Ÿ’–

Communication mode with syslog server

Format: Multiple values allowed, separated by ",".

"native" - native
"tcp" - tcp
"udp" - udp
"inet" - inet
"unix" - unix
"stream" - stream
"pipe" - pipe
"console" - console

Default: None.

Context: site (sympa.conf)

ngl, in most cases Sympa just picks a perfectly good default for you automatically, like the considerate queen she is. โœจ

๐Ÿฆ‹ syslog_socket.path โ€” Stream location

Format: /".+"/

Default: None.

Context: site (sympa.conf)

If you leave it alone, it defaults to the standard location on the system. No thoughts, just vibes. ๐Ÿ’…

๐Ÿฆ‹ syslog_socket.timeout โ€” Socket timeout

Format: Number of seconds.

Default: None.

Context: site (sympa.conf)

๐Ÿฆ‹ syslog_socket.host โ€” Host name to send the messages to

Format: /$host/

Default: None.

Context: site (sympa.conf)

Defaults to the local host, iykyk. ๐Ÿ 

๐Ÿฆ‹ syslog_socket.port โ€” TCP or UDP port to connect to

Format: /"\d+"/

Default: None.

Context: site (sympa.conf)

Defaults to the standard port on the system.

๐ŸŒธ log_level โ€” Log verbosity

Format: /"\d+"/

Default: 0

Context: domain (robot.conf), site (sympa.conf)

This one sets how chatty your logs are, bestie.

  • 0: Only main operations are logged
  • 3: Almost everything is logged.

Example:

log_level 2

โœ‰๏ธ Mail server โœ‰๏ธ

๐Ÿ“ฎ sendmail โ€” Path to sendmail

Format: /".+"/

Default: /usr/sbin/sendmail

Context: site (sympa.conf)

Absolute path to the sendmail command line utility, like, for example a binary literally named sendmail that ships with Postfix.

Sympa expects this binary to be sendmail compatible โ€” exim, Postfix, qmail and so on all provide one, so you're covered. ๐Ÿซถ

๐Ÿ“ฎ sendmail_args โ€” Command line parameters passed to sendmail

Format: /".+"/

Default: -oi -odi -oem

Context: site (sympa.conf)

Heads up, bestie: do not put the -f, -N and -V options in here, and don't add recipient addresses either, because Sympa adds all of those itself. Not you doing it. Her. ๐Ÿ’…

Format: /".+"/

Default: $SENDMAIL_ALIASES

Context: domain (robot.conf), site (sympa.conf)

Highly recommended: make a dedicated alias file, so Sympa never steamrolls your standard alias file and only ever touches her own little file. So respectful.

Set this parameter to none if you want to disable alias management in Sympa entirely. ๐Ÿšซ

๐Ÿ“ฎ aliases_program โ€” Program used to update alias database

Format: /"makemap|newaliases|postalias|postmap|/.+|none"/

Default: newaliases

Context: domain (robot.conf), site (sympa.conf)

This can be makemap, newaliases, postalias, postmap or the full path to a custom program of your very own. Main character energy. ๐Ÿ‘‘

๐Ÿ“ฎ aliases_wrapper โ€” Whether to use the alias wrapper

Format:

  • off - disabled
  • on - enabled

Default: on

Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2.59b.1 and later. ๐ŸŽ€

If the program that updates your alias database doesn't need root privileges, set this parameter to off and delete the wrapper file sympa_newaliases-wrapper.

๐Ÿ“ฎ aliases_db_type โ€” Type of alias database

Format: /"\w[-\w]*"/

Default: hash

Context: domain (robot.conf), site (sympa.conf)

btree, dbm, hash and so on โ€” whatever your heart desires. Available when aliases_program is makemap, postalias or postmap. ๐ŸŒˆ

๐Ÿ“ฎ alias_manager โ€” Path to alias manager

Format: /".+"/

Default: $SBINDIR/alias_manager.pl

Context: site (sympa.conf)

The absolute path to the script that will add and remove mail aliases for you.

Example:

alias_manager /usr/local/libexec/ldap_alias_manager.pl

๐Ÿ“‹ List definition ๐Ÿ“‹

๐ŸŽ€ subject โ€” Subject of the list

Format: /".+"/

Default: None, mandatory. (yes bestie, required, no skipping ๐Ÿ’€)

Context: list (config)

This parameter is the subject of the list, and it's what gets sent back when someone uses the LISTS mail command. It's free form text, but it's gotta stay on one line. One line only, okay?

๐ŸŽ€ visibility โ€” Visibility of the list

Format: Name of visibility scenario:

  • conceal - conceal except for subscribers
  • noconceal - no conceal
  • secret - conceal even for subscribers

Default: conceal

Context: list (config), domain (robot.conf), site (sympa.conf)

This parameter decides whether the list shows up in the output of a LISTS command, or whether it appears in the list overview of the web interface. Choose your fighter. ๐Ÿ‘€

๐ŸŽ€ topics โ€” Topics for the list

Format: Multiple values allowed, separated by ",". List topic.

Default: None.

Context: list (config)

This parameter lets you classify lists โ€” and yes, you can define multiple topics, even hierarchical ones, because she contains multitudes. WWSympa's list of public lists uses this parameter. ๐Ÿ”ฅ

๐ŸŽ€ lang โ€” Language of the list

Format: Language tag.

Default: en-US

Context: list (config), domain (robot.conf), site (sympa.conf)

This parameter defines the language used for the list. It's used to initialize a user's language preference, and Sympa's command reports get pulled from the associated message catalog. โœจ

๐ŸŽ€ family_name โ€” Family name

Format: /$family_name/

Default: None.

Context: list (config)

๐ŸŽ€ max_list_members โ€” Maximum number of list members

Format: Number of list members.

Default: 0 (list members)

Context: list (config), domain (robot.conf), site (sympa.conf)

Available versions: 6.2a.5 and later. ๐Ÿฆ‹

This is the limit for the number of subscribers. 0 means no limit โ€” go off, recruit the whole internet. ๐Ÿ˜ญ

๐ŸŽ€ priority โ€” Priority

Format:

0 - 0 - highest priority
1 - 1
2 - 2
3 - 3
4 - 4
5 - 5
6 - 6
7 - 7
8 - 8
9 - 9 - lowest priority
"z" - queue messages only

Default: 5

Context: list (config), domain (robot.conf), site (sympa.conf)

The priority with which Sympa will process messages for this list. This level of priority applies while the message is making its way through the spool. And the z priority? That one freezes the message in the spool โ€” it just sits there, no thoughts, head empty. ๐ŸงŠ


๐Ÿ“ฅ Receiving ๐Ÿ“ฅ

๐Ÿ’Œ sender_headers โ€” Header field name(s) used to determine sender of the messages

Format: Any.

Default: From

Context: site (sympa.conf)

Return-Path means the envelope sender (a.k.a. UNIX From), which will be the alternative to the sender of messages that have no From field. Resent-From may also be inserted before From, because some mailers add it into redirected messages and keep the original From field intact. In particular cases, Return-Path can't give the right sender: several mail gateway products rewrite the envelope sender and add the original one as a non-standard field such as X-Envelope-From. If that's the situation you're in, you might want to insert it in place of Return-Path.

Example:

sender_headers Resent-From,From,Return-Path

๐Ÿ’Œ misaddressed_commands โ€” Reject misaddressed commands

Format: Any.

Default: reject

Context: site (sympa.conf)

When a mail command gets sent to a list, Sympa rejects that message by default. You can turn this feature off by setting this parameter to ignore. ๐Ÿ™ˆ

๐Ÿ’Œ misaddressed_commands_regexp โ€” Regular expression matching with misaddressed commands

Format: Any.

Default: ((subscribe\s+(\S+)|unsubscribe\s+(\S+)|signoff\s+(\S+)|set\s+(\S+)\s+(mail|nomail|digest))\s*)

Context: site (sympa.conf)

A Perl regular expression applied on the message subject and body to detect misaddressed commands. Fr fr, this is the detective. ๐Ÿ•ต๏ธ

๐Ÿ’Œ sympa_priority โ€” Priority for command messages

Format:

0 - 0 - highest priority
1 - 1
2 - 2
3 - 3
4 - 4
5 - 5
6 - 6
7 - 7
8 - 8
9 - 9 - lowest priority
"z" - queue messages only

Default: 1

Context: domain (robot.conf), site (sympa.conf)

Priority applied to messages sent to the Sympa command address.

๐Ÿ’Œ request_priority โ€” Priority for messages bound for list owners

Format:

0 - 0 - highest priority
1 - 1
2 - 2
3 - 3
4 - 4
5 - 5
6 - 6
7 - 7
8 - 8
9 - 9 - lowest priority
"z" - queue messages only

Default: 0

Context: domain (robot.conf), site (sympa.conf)

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

๐Ÿ’Œ owner_priority โ€” Priority for non-VERP bounces

Format:

0 - 0 - highest priority
1 - 1
2 - 2
3 - 3
4 - 4
5 - 5
6 - 6
7 - 7
8 - 8
9 - 9 - lowest priority
"z" - queue messages only

Default: 9

Context: domain (robot.conf), site (sympa.conf)

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

๐Ÿ’Œ incoming_max_count โ€” Max number of sympa_msg.pl workers

Format: /"\d+"/

Default: 1

Context: site (sympa.conf)

Available versions: 6.2b.5 and later. โญ

Max number of workers of the sympa_msg.pl daemon processing the incoming spool.

๐Ÿ’Œ sleep โ€” Interval between scanning incoming message spool

Format: Number of seconds.

Default: 5 (seconds)

Context: site (sympa.conf)

Must not be 0. Like, literally don't.

๐Ÿ“ค Sending/receiving setup ๐Ÿ“ฅ

๐Ÿ’œ send โ€” Who can send messages

Format: Name of send scenario:

The scenario options for this one are coming right up in the next bit, bestie โ€” we're not done yet ๐Ÿ’–

โ€ฆand the rest of the menu, bestie, no skips:

  • "closed" โ€” closed
  • "confidential" โ€” restricted to subscribers, messages from others are discarded
  • "editorkey" โ€” Moderated
  • "editorkeyonly" โ€” Moderated, even for moderators
  • "editorkeyonlyauth" โ€” Moderated, need authentication from moderator
  • "newsletter" โ€” Newsletter, restricted to moderators
  • "newsletterkeyonly" โ€” Newsletter, restricted to moderators after confirmation
  • "owner" โ€” Restricted to list owners only
  • "ownerauth" โ€” Restricted to list owners with previous MD5 authentication
  • "private" โ€” restricted to subscribers
  • "private_smime" โ€” restricted to subscribers and checked smime signature
  • "privateandeditorkey" โ€” Moderated, restricted to subscribers
  • "privateandnomultipartoreditorkey" โ€” Moderated, for non subscribers sending multipart messages
  • "privatekey" โ€” restricted to subscribers with previous md5 authentication
  • "privatekeyandeditorkeyonly" โ€” Moderated, for subscribers and even moderators themself
  • "privateoreditorkey" โ€” Private, moderated for non subscribers
  • "privateorpublickey" โ€” Private, confirmation for non subscribers
  • "public" โ€” public list
  • "public_nobcc" โ€” public list, Bcc rejected (anti-spam)
  • "publickey" โ€” need authentication
  • "publicnoattachment" โ€” public list multipart/mixed messages are forwarded to moderator
  • "publicnomultipart" โ€” public list multipart messages are rejected
  • Default: "private"
  • Context: list (config), domain (robot.conf), site (sympa.conf)

This parameter specifies who can send messages to the list. That's it, that's the whole job ๐Ÿ’…


"delivery_time"

Delivery time (hh:mm)

  • Format: /"[0-2]?\d\:[0-6]\d"/
  • Default: None.
  • Context: list (config)

If this parameter is present, non-digest messages will be delivered to subscribers at this time: When this time has been past, delivery is postponed to the same time in next day. โฐ


"digest"

(Paragraph) Digest frequency

Single occurrence

Definition of digest mode. If this parameter is present, subscribers can select the option of receiving messages in multipart/digest MIME format, or as a plain text digest. Messages are then grouped together, and compiled messages are sent to subscribers according to the frequency selected with this parameter. ๐Ÿ—ž๏ธ

"digest.days"

days

  • Format:
    • Multiple occurrences allowed.
    • Day of week, 0 - 6.
  • Default: None, mandatory.
  • Context: list (config)

"digest.hour"

hour

  • Format: /"[01]?[0-9]|2[0-3]"/
  • Default: None, mandatory.
  • Context: list (config)

"digest.minute"

minute

  • Format: /"[0-5]?[0-9]"/
  • Default: None, mandatory.
  • Context: list (config)

"digest_max_size"

Digest maximum number of messages

  • Format: Number of messages.
  • Default: 25 (messages)
  • Context: list (config)

"available_user_options"

(Paragraph) Available subscription options

Single occurrence

"available_user_options.reception"

reception mode

  • Format:
    • Multiple values allowed, separated by ",".
    • Reception mode of list member.
  • Default: "mail,notice,digest,digestplain,summary,nomail,txt,urlize,not_me"
  • Context: list (config)

Only these modes will be allowed for the subscribers of this list. If a subscriber has a reception mode not in the list, Sympa uses the mode specified in the default_user_options paragraph. ๐Ÿ‘‘


"default_user_options"

(Paragraph) Subscription profile

Single occurrence

Default profile for the subscribers of the list.

"default_user_options.reception"

reception mode

  • Format: Reception mode of list member.
  • Default: "mail"
  • Context: list (config)

Mail reception mode. โœ‰๏ธ

"default_user_options.visibility"

visibility

  • Format: Visibility mode of list member.
  • Default: "noconceal"
  • Context: list (config)

Visibility of the subscriber. ๐Ÿซฃ


"msg_topic"

(Paragraph) Topics for message categorization

Multiple occurrences allowed

This paragraph defines a topic used to tag a message of a list, named by msg_topic.name ("other" is a reserved word), its title is msg_topic.title. The msg_topic.keywords entry is optional and allows automatic tagging. This should be a list of keywords, separated by ','. ๐Ÿท๏ธ

"msg_topic.name"

Message topic name

  • Format: /"[^ โ€” nah, for real: /"[^ โ€ฆ okay okay, it's /"[^ no. It is:
  • Format: /"[\-\w]+"/
  • Default: None, mandatory.
  • Context: list (config)

"msg_topic.keywords"

Message topic keywords

  • Format: /"[^,\n]+(,[^,\n]+)*"/
  • Default: None.
  • Context: list (config)

"msg_topic.title"

Message topic title

  • Format: /".+"/
  • Default: None, mandatory.
  • Context: list (config)

"msg_topic_keywords_apply_on"

Defines to which part of messages topic keywords are applied

  • Format:
    • "subject" โ€” subject field
    • "body" โ€” message body
    • "subject_and_body" โ€” subject and body
  • Default: "subject"
  • Context: list (config)

This parameter indicates which part of the message is used to perform automatic tagging. ๐Ÿ”


"msg_topic_tagging"

Message tagging

  • Format:
    • "required_sender" โ€” required to post message
    • "required_moderator" โ€” required to distribute message
    • "optional" โ€” optional
  • Default: "optional"
  • Context: list (config)

This parameter indicates if the tagging is optional or required for a list.


"reply_to_header"

(Paragraph) Reply address

Single occurrence

This defines what Sympa will place in the Reply-To: SMTP header field of the messages it distributes.

"reply_to_header.value"

value

  • Format:
    • "sender" โ€” sender
    • "list" โ€” list
    • "all" โ€” all
    • "other_email" โ€” other email address
  • Default: "sender"
  • Context: list (config)

This parameter indicates whether the Reply-To: field should indicate the sender of the message (sender), the list itself (list), both list and sender (all) or an arbitrary e-mail address (defined by the other_email parameter).

โš ๏ธ Note: it is inadvisable to change this parameter, and particularly inadvisable to set it to list. Experience has shown it to be almost inevitable that users, mistakenly believing that they are replying only to the sender, will send private messages to a list. This can lead, at the very least, to embarrassment, and sometimes to more serious consequences. ๐Ÿ˜ญ Do not do this, bestie, I am begging.

"reply_to_header.other_email"

other email address

  • Format: /$email/
  • Default: None.
  • Context: list (config)

If value was set to other_email, this parameter defines the e-mail address used.

"reply_to_header.apply"

respect of existing header field

  • Format:
    • "forced" โ€” overwrite Reply-To: header field
    • "respect" โ€” preserve existing header field
  • Default: "respect"
  • Context: list (config)

The default is to respect (preserve) the existing Reply-To: SMTP header field in incoming messages. If set to forced, Reply-To: SMTP header field will be overwritten.


"anonymous_sender"

Anonymous sender

  • Format: /".+"/
  • Default: None.
  • Context: list (config)

To hide the sender's email address before distributing the message. It is replaced by the provided email address. ๐Ÿ•ต๏ธโ€โ™€๏ธ


"anonymous_header_fields"

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

  • Format: Any.
  • Default: "ARC-Authentication-Results,ARC-Message-Signature,ARC-Seal,Authentication-Results,Disposition-Notification-To,DKIM-Signature,Domainkey-Signature,Fax,Injection-Info,Mailer,Organisation,Organization,Original-Recipient,Originating-Client,Originator,Path,Phone,Received,Received-SPF,Reply-To,Resent-Reply-To,Return-Receipt-To,Telefax,User-Agent,X-Envelope-From,X-Envelope-To,X-Face,X-Mailer,X-MimeOLE,X-Newsreader,X-Sender,X-X-Sender"
  • Context: site (sympa.conf)

"custom_header"

Custom header field

  • Format:
    • Multiple occurrences allowed.
    • /"$header_field_name:.+"/
  • Default: None.
  • Context: list (config)

This parameter is optional. The headers specified will be added to the headers of messages distributed via the list. As of release 1.2.2 of Sympa, it is possible to put several custom header lines in the configuration file at the same time. โœจ


"custom_subject"

Subject tagging

  • Format: /".+"/
  • Default: None.
  • Context: list (config)

This parameter is optional. It specifies a string which is added to the subject of distributed messages (intended to help users who do not use automatic tools to sort incoming messages). This string will be surrounded by [] characters. ๐Ÿท๏ธ


Attachment type

  • Format:
    • "mime" โ€” add a new MIME part
    • "append" โ€” append to message body
  • Default: "mime"
  • Context: list (config)

List owners may decide to add message headers or footers to messages sent via the list. This parameter defines the way a footer/header is added to a message.

mime:

The default value. Sympa will add the footer/header as a new MIME part.

append:

Sympa will not create new MIME parts, but will try to append the header/footer to the body of the message. Predefined message-footers will be ignored.


"max_size"

Maximum message size

  • Format: Number of bytes.
  • Default: 5242880 (bytes)
  • Context: list (config), domain (robot.conf), host

Maximum size of a message in 8-bit bytes.

Example:

max_size 2097152

"personalization_feature"

Allow message personalization

  • Format:
    • "on" โ€” enabled
    • "off" โ€” disabled
  • Default: "off"
  • Context: list (config), domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.59b.2 and later. ๐ŸŒˆ

"personalization"

(Paragraph) Message personalization

Single occurrence

"personalization.web_apply_on"

Scope for messages from the web interface

  • Format:
    • "none" โ€” do nothing
    • "footer" โ€” header and footer
    • "all" โ€” all
  • Default: "footer"
  • Context: list (config), domain (robot.conf), site (sympa.conf)

"personalization.mail_apply_on"

Scope for messages from incoming email

Format:

  • "none" โ€” do literally nothing, ghost mode ๐Ÿ‘ป
  • "footer" โ€” header and footer
  • "all" โ€” all of it, no crumbs left ๐Ÿช

Default: "none"

Context: list (config), domain (robot.conf), site (sympa.conf)


"message_hook" โ€” (Paragraph) Hook modules for message processing โœจ

Single occurrence โ€” one and done, bestie, don't try to stack these.

  • "message_hook.pre_distribute" โ€” a hook that runs on the messages before distribution
    • Format: /"(::|\w)+"/
    • Default: None.
    • Context: list (config)
  • "message_hook.post_archive" โ€” a hook on the messages just after archiving
    • Format: /"(::|\w)+"/
    • Default: None.
    • Context: list (config)

"reject_mail_from_automates_feature" โ€” reject mail from automatic processes (crontab, etc)? ๐Ÿค–๐Ÿšซ

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default: "on"

Context: list (config), site (sympa.conf)

Available versions: 6.2a.0 and later.

So basically this one rejects messages that look like they came from automated services, and it decides that based on a few header fields ("Content-Identifier:", "Auto-Submitted:"). Also โ€” plot twist โ€” Sympa can also be configured to reject messages based on the "From:" header field value (see "loop_prevention_regex"). iykyk ๐Ÿ’…


"remove_headers" โ€” header fields to be removed from incoming messages ๐Ÿงน

Format: Multiple values allowed, separated by ",".

/"\S+"/

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

Context: list (config), site (sympa.conf)

Use it, for example, to make sure your users get some privacy in case that "anonymous_sender" mode is just not the vibe.

The removal of these header fields happens before Sympa adds its own header fields ("rfc2369_header_fields" and "custom_header"). Order matters, bestie.

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 ๐Ÿงผ

Format: Multiple values allowed, separated by ",".

/"$header_field_name(:.+)?"/

Default: "none"

Context: list (config), site (sympa.conf)

The removal happens after Sympa's own header fields are added; so it's a super convenient way to remove Sympa's own header fields (like "X-Loop:" or "X-no-archive:") if that's what you want. Obsessed with the flexibility tbh ๐Ÿซถ

Example:

remove_outgoing_headers X-no-archive

"rfc2369_header_fields" โ€” RFC 2369 header fields ๐Ÿ“ฎ

Format: Multiple values allowed, separated by ",".

  • "help" โ€” help
  • "subscribe" โ€” subscription
  • "unsubscribe" โ€” unsubscription
  • "post" โ€” posting address
  • "owner" โ€” owner
  • "archive" โ€” list archive

Default: "help,subscribe,unsubscribe,post,owner,archive"

Context: list (config), site (sympa.conf)

Specify which RFC 2369 mailing list header fields should be added. Slay.

And heads up: the "List-Id:" header field defined in RFC 2919 is always added. Sympa also adds the "Archived-At:" header field defined in RFC 5064. No opting out of those two, periodt.


๐ŸŒˆ Distribution ๐ŸŒˆ

"urlize_min_size" โ€” minimum size to be urlized ๐Ÿ“Ž

Format: Number of bytes.

Default: 10240 (bytes)

Context: domain (robot.conf), site (sympa.conf)

When a subscriber chose "urlize" reception mode, attachments that are not smaller than this size get urlized. Big file? Not in my inbox, bestie โœจ


"allowed_external_origin" โ€” allowed external links in sanitized HTML ๐Ÿ”—

Format: /"(?:[^\@]+\@)?[-\w*]+(?:[.][-\w*]+)*(?:[:][\d*]+)?"/

Default: None.

Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2.19b.2 and later.

When the HTML content of a message absolutely must be sanitized, links ("href" or "src" attributes) whose hosts are listed in this parameter will not be scrubbed. If the "*" character is included, it matches any subdomains. A single "*" allows any hosts. Wild, truly ๐Ÿ’€

Example:

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

"sympa_packet_priority" โ€” default priority for a packet ๐ŸŽš๏ธ

Format:

  • 0 โ€” 0 - highest priority
  • 1 โ€” 1
  • 2 โ€” 2
  • 3 โ€” 3
  • 4 โ€” 4
  • 5 โ€” 5
  • 6 โ€” 6
  • 7 โ€” 7
  • 8 โ€” 8
  • 9 โ€” 9 - lowest priority
  • "z" โ€” queue messages only

Default: 5

Context: domain (robot.conf), site (sympa.conf)

This is the default priority set on a packet that's about to be sent by the bulk. Main character packets only, obviously ๐Ÿ‘‘


"bulk_fork_threshold" โ€” fork threshold of bulk daemon ๐Ÿด

Format: /"\d+"/

Default: 1

Context: site (sympa.conf)

The minimum number of packets before the bulk daemon forks a new worker to increase sending rate. It's giving "I need backup" energy.


"bulk_max_count" โ€” maximum number of bulk workers ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘

Format: /"\d+"/

Default: 3

Context: site (sympa.conf)


"bulk_lazytime" โ€” idle timeout of bulk workers ๐Ÿ˜ด

Format: Number of seconds.

Default: 600 (seconds)

Context: site (sympa.conf)

The number of seconds a bulk worker will keep running without processing a message before it spontaneously exits. Respect the nap schedule.


"bulk_sleep" โ€” sleep time of bulk workers ๐Ÿ’ค

Format: Number of seconds.

Default: 1 (seconds)

Context: site (sympa.conf)

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. Tiny sleeps = fast reflexes, no cap.


"bulk_wait_to_fork" โ€” interval between checks of packet numbers โฑ๏ธ

Format: Number of seconds.

Default: 10 (seconds)

Context: site (sympa.conf)

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

Keep it small if you're expecting brutal increases in the message sending load. Brace yourself ๐Ÿ“ˆ


"log_smtp" โ€” log invocation of sendmail ๐Ÿ“

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default: "off"

Context: domain (robot.conf), site (sympa.conf)

This can be overwritten by the -m option for sympa.pl. Rude of it, but okay ๐Ÿ’…


"maxsmtp" โ€” maximum number of sendmail processes ๐Ÿ”ฅ

Format: /"\d+"/

Default: 40

Context: site (sympa.conf)

Maximum number of simultaneous child processes spawned by Sympa. This is the main load control parameter โ€” the big one, the VIP.

The proposed value is quite low, but you can rise it up to 100, 200 or even 300 with powerful systems. Go off, beefy server.

Example:

maxsmtp 500

"nrcpt" โ€” maximum number of recipients per call to sendmail ๐Ÿ“ฌ

Format: /"\d+"/

Default: 25

Context: site (sympa.conf)

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. Per-domain customization? Iconic.


"avg" โ€” maximum number of different mail domains per call to sendmail ๐ŸŒ

Format: /"\d+"/

Default: 10

Context: site (sympa.conf)


๐Ÿ‘‘ Privileges ๐Ÿ‘‘

"create_list" โ€” who is able to create lists ๐Ÿ†•

Format: Name of create_list scenario:

  • "listmaster" โ€” restricted to listmaster
  • "public_listmaster" โ€” anybody by validation by listmaster required

Default: "public_listmaster"

Context: domain (robot.conf), site (sympa.conf)

Defines who can create lists (or request list creation) by creating new lists, or by renaming or copying existing lists. So many ways to get a new list, so little time.

Example:

create_list listmaster

"allow_subscribe_if_pending" โ€” allow adding subscribers to a list not open ๐Ÿšช

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default: "on"

Context: domain (robot.conf), site (sympa.conf)

If it's set to "off", then adding subscribers to โ€” or removing subscribers from โ€” a list whose status is anything other than "open" is forbidden. Gatekeeping, but make it config.


"global_remind" โ€” who is able to send remind messages over all lists ๐Ÿ“ฃ

Format: Name of global_remind scenario:

  • "listmaster" โ€” only for listmaster

Default: "listmaster"

Context: site (sympa.conf)


"move_user" โ€” who is able to change user's email ๐Ÿ“ง

Format: Name of move_user scenario:

  • "auth" โ€” need authentication
  • "closed" โ€” impossible
  • "listmaster" โ€” listmaster only

Default: "auth"

Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2.19b.1 and later.


"use_blocklist" โ€” use blocklist ๐Ÿšซ

Format: /"[-.\w]+"/

Default: "send,create_list"

Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2.61b.1 and later.

This is the list of operations, separated by comma, for which the blocklist filter is applied. Setting this parameter to "none" will hide the blocklist feature entirely. Poof, gone โœจ


"info" โ€” who can view list information ๐Ÿ‘€

Format: Name of info scenario:

  • "conceal" โ€” restricted to subscribers - Silent rejection otherwise.
  • "open" โ€” for anyone
  • "private" โ€” restricted to subscribers

Default: "open"

Context: list (config), domain (robot.conf), site (sympa.conf)


"subscribe" โ€” who can subscribe to the list ๐Ÿ™‹

Format: Name of subscribe scenario:

  • "auth" โ€” subscription request confirmed
  • "auth_notify" โ€” need authentication (notification is sent to owners)
  • "auth_owner" โ€” requires authentication then owner approval
  • "closed" โ€” subscription is impossible
  • "open" โ€” for anyone without authentication
  • "open_notify" โ€” anyone, notification is sent to list owner
  • "open_quiet" โ€” anyone, no welcome message
  • "owner" โ€” owners approval
  • "smime" โ€” requires S/MIME signed
  • "smimeorowner" โ€” requires S/MIME signed or owner approval

Default: "open"

Context: list (config), domain (robot.conf), site (sympa.conf)

The subscribe parameter defines the rules for subscribing to the list. That's the whole thing, bestie ๐Ÿซถ


"add" โ€” who can add subscribers โž•

Format: Name of add scenario:

  • "auth" โ€” restricted to owner with authentication
  • "closed" โ€” add impossible
  • "owner" โ€” add performed by list owner does not need authentication
  • "owner_notify" โ€” add performed by owner does not need authentication (notification)

Default: "owner"

Context: list (config), domain (robot.conf), site (sympa.conf)

Privilege for adding (ADD command) a subscriber to the list.


"unsubscribe" โ€” who can unsubscribe ๐Ÿ™…

Format: Name of unsubscribe scenario:

  • "auth" โ€” need authentication, you gotta prove who you are ๐Ÿ”
  • "auth_notify" โ€” authentication requested, and a notification gets sent to the owner ๐Ÿ“ฌ
  • "closed" โ€” impossible. literally not a thing, don't even try ๐Ÿ’€
  • "open" โ€” open, free, no gatekeeping
  • "open_notify" โ€” open, but with a mail confirmation, and the owner is notified
  • "owner" โ€” owners' approval required ๐Ÿ‘‘

Default: "open"

Context: list (config), domain (robot.conf), site (sympa.conf)

This parameter specifies the unsubscription method for the list. Use open_notify or auth_notify to allow owner notification of each unsubscribe command.


๐Ÿ’… "del" โ€” who can delete subscribers

Format: Name of "del" scenario:

  • "auth" โ€” deletion performed only by list owners, and authentication is required
  • "closed" โ€” removing a subscriber is impossible
  • "owner" โ€” by owner, no authentication needed
  • "owner_notify" โ€” list owners, authentication not needed (notification)

Default: "owner"

Context: list (config), domain (robot.conf), site (sympa.conf)

๐Ÿซถ "invite" โ€” who can invite people

Format: Name of "invite" scenario:

  • "closed" โ€” closed
  • "owner" โ€” invite performed by list owner, no authentication needed
  • "private" โ€” restricted to subscribers
  • "public" โ€” public

Default: "private"

Context: list (config), domain (robot.conf), site (sympa.conf)

โฐ "remind" โ€” who can start a remind process

Format: Name of "remind" scenario:

  • "listmaster" โ€” listmaster only
  • "owner" โ€” restricted to list owners

Default: "owner"

Context: list (config), domain (robot.conf), site (sympa.conf)

This parameter specifies who is authorized to use the remind command.

๐Ÿ‘€ "review" โ€” who can review subscribers

Format: Name of "review" scenario:

  • "closed" โ€” no one can review
  • "listmaster" โ€” listmaster only
  • "owner" โ€” only owner (and listmaster)
  • "private" โ€” restricted to subscribers
  • "public" โ€” anyone can do it!

Default: "owner"

Context: list (config), domain (robot.conf), site (sympa.conf)

This parameter specifies who can access the list of members. Since subscriber addresses can be abused by spammers, it is strongly recommended that you only authorize owners or subscribers to access the subscriber list. fr fr, protect those addresses ๐Ÿ›ก๏ธ

๐ŸŒ "owner_domain" โ€” required domains for list owners

Format:

/"$host( +$host)*"/

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

Available versions: 6.2.23b.3 and later.

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 moderators and subscribers from the Internet at large.

๐Ÿ”ข "owner_domain_min" โ€” minimum owners in required domains

Format:

/"\d+"/

Default: 0

Context: list (config), domain (robot.conf), site (sympa.conf)

Available versions: 6.2.23b.3 and later.

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.

๐Ÿ‘‘ "default_owner_options" โ€” (Paragraph) Owner profile

Single occurrence

Default profile for the owners of the list.

๐ŸŽ€ "default_owner_options.profile" โ€” profile

Format:

  • "privileged" โ€” privileged owner
  • "normal" โ€” normal owner

Default: "normal"

Context: list (config), domain (robot.conf), site (sympa.conf)

๐Ÿ“ฌ "default_owner_options.reception" โ€” reception mode

Format:

  • "mail" โ€” receive notification email
  • "nomail" โ€” no notifications

Default: "mail"

Context: list (config), domain (robot.conf), site (sympa.conf)

Mail reception mode.

๐Ÿ‘ป "default_owner_options.visibility" โ€” visibility

Format:

  • "conceal" โ€” concealed from list menu
  • "noconceal" โ€” listed on the list menu

Default: "noconceal"

Context: list (config), domain (robot.conf), site (sympa.conf)

Visibility of the owner.

๐ŸŽ€ "default_editor_options" โ€” (Paragraph) Moderator profile

Single occurrence

Default profile for the moderators of the list.

๐Ÿ“ฌ "default_editor_options.reception" โ€” reception mode

Format:

  • "mail" โ€” receive notification email
  • "nomail" โ€” no notifications

Default: "mail"

Context: list (config), domain (robot.conf), site (sympa.conf)

Mail reception mode.

๐Ÿ‘ป "default_editor_options.visibility" โ€” visibility

Format:

  • "conceal" โ€” concealed from list menu
  • "noconceal" โ€” listed on the list menu

Default: "noconceal"

Context: list (config), domain (robot.conf), site (sympa.conf)

Visibility of the moderator.


๐Ÿ’พ Archives

๐Ÿ™ˆ "ignore_x_no_archive_header_feature" โ€” ignore X-no-archive: header field

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default: "off"

Context: site (sympa.conf)

Sympa's default behavior is to skip archiving of incoming messages that have an "X-no-archive:" header field set. This parameter allows one to change this behavior.

Example:

ignore_x_no_archive_header_feature on

๐Ÿ› ๏ธ "custom_archiver" โ€” custom archiver

Format:

/".+"/

Default: None.

Context: site (sympa.conf)

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.

๐Ÿ“ฆ "process_archive" โ€” store distributed messages into archive

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default: "off"

Context: list (config), domain (robot.conf), site (sympa.conf)

Available versions: 6.2b.1 and later.

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.

๐Ÿ—‚๏ธ "archive" โ€” (Paragraph) Archives

Single occurrence

Privilege for reading mail archives and frequency of archiving.

Defines who can access the list's web archive.

๐Ÿšซ "archive.period" โ€” Deprecated.

Context: list (config)

๐Ÿšซ "archive.access" โ€” Deprecated.

Context: list (config)

Available versions: up to 6.2a.43.

๐Ÿ” "archive.web_access" โ€” access right

Format: Name of "archive_web_access" scenario:

  • "closed" โ€” closed
  • "listmaster" โ€” listmaster
  • "owner" โ€” by owner
  • "private" โ€” subscribers only
  • "public" โ€” public

Default: "closed"

Context: list (config), domain (robot.conf), site (sympa.conf)

Available versions: 6.2b.1 and later.

๐Ÿ“ง "archive.mail_access" โ€” access right by mail commands

Format: Name of "archive_mail_access" scenario:

  • "closed" โ€” closed
  • "owner" โ€” by owner
  • "private" โ€” subscribers only
  • "public" โ€” public

Default: "closed"

Context: list (config), domain (robot.conf), site (sympa.conf)

Available versions: 6.2b.1 and later.

๐Ÿ“Š "archive.quota" โ€” quota

Format: Number of Kbytes.

Default: None.

Context: list (config), site (sympa.conf)

Available versions: 6.2b.1 and later.

๐Ÿ“… "archive.max_month" โ€” maximum number of month archived

Format: Number of months.

Default: None.

Context: list (config)

Available versions: 6.2b.1 and later.

๐Ÿ”“ "archive_crypted_msg" โ€” archive encrypted mails as cleartext

Format:

  • "original" โ€” original messages
  • "decrypted" โ€” decrypted messages

Default: "original"

Context: list (config)

๐Ÿ•ต๏ธ "web_archive_spam_protection" โ€” protect web archive against spam harvesters

Format:

  • "cookie" โ€” use HTTP cookie
  • "javascript" โ€” use JavaScript
  • "at" โ€” replace @ characters
  • "concealed" โ€” never show address
  • "none" โ€” do nothing

Default: "cookie"

Context: list (config), domain (robot.conf), site (sympa.conf)

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.
  • concealed: e-mail addresses will never be displayed.

๐Ÿ€ Bounces

๐Ÿ“‰ "bounce" โ€” (Paragraph) Bounces management

Single occurrence

โš ๏ธ "bounce.warn_rate" โ€” warn rate

Format: Number of %.

Default: 30 (%)

Context: list (config), site (sympa.conf)

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

๐Ÿšซ "bounce.halt_rate" โ€” Deprecated.

Context: list (config), site (sympa.conf)

๐Ÿฅ‡ "bouncers_level1" โ€” (Paragraph) Management of bouncers, 1st level

Single occurrence

Level 1 is the lower level of bouncing users

๐Ÿ“ "bouncers_level1.rate" โ€” threshold

Format: Number of points.

Default: 45 (points)

Context: list (config), domain (robot.conf), site (sympa.conf)

Each bouncing user have a score (from 0 to 100).

This parameter defines a lower limit for each category of bouncing users. For example, level 1 begins from 45 to level_2_treshold.

โš™๏ธ "bouncers_level1.action" โ€” action for this population

Format:

  • "remove_bouncers" โ€” remove bouncing users
  • "notify_bouncers" โ€” send notify to bouncing users
  • "none" โ€” do nothing

Default: "notify_bouncers"

Context: list (config)

This parameter defines which task is automatically applied on level 1 bouncers.

๐Ÿ”” "bouncers_level1.notification" โ€” notification

Format:

  • "none" โ€” do nothing
  • "owner" โ€” owner
  • "listmaster" โ€” listmaster

Default: "owner"

Context: list (config)

When automatic task is executed on level 1 bouncers, a notification email can be send to listowner or listmaster.

๐Ÿฅˆ "bouncers_level2"

๐Ÿ‘‘ Management of bouncers, 2nd level ๐Ÿ‘‘

Single occurrence ๐Ÿ’ซ

Level 2 is the highest level of bouncing users โ€” the final boss of bouncing, bestie ๐Ÿ’€


๐Ÿ’… bouncers_level2.rate

threshold

Format:

  • Number of points.

Default:

  • 75 (points)

Context:

  • list (config), domain (robot.conf), site (sympa.conf)

Every bouncing user has a score, and that score lives somewhere between 0 and 100.

This parameter is the one that decides what score range counts as which category of bouncing user. Like, for example, level 2 is the bucket for users sitting between 80 and 100. ๐ŸŽฏ


๐Ÿ’… bouncers_level2.action

action for this population

Format:

  • "remove_bouncers" โ€” remove bouncing users
  • "notify_bouncers" โ€” send notify to bouncing users
  • "none" โ€” do nothing

Default:

  • "remove_bouncers"

Context:

  • list (config)

This one picks which task gets automatically applied to your level 2 bouncers. ๐Ÿ‘‹


๐Ÿ’… bouncers_level2.notification

notification

Format:

  • "none" โ€” do nothing
  • "owner" โ€” owner
  • "listmaster" โ€” listmaster

Default:

  • "owner"

Context:

  • list (config)

When that automatic task runs on level 2 bouncers, a notification email can get sent out โ€” either to the listowner or to the listmaster. Your call, bestie ๐Ÿ“ฌ


๐Ÿ’… verp_rate

percentage of list members in VERP mode

Format:

  • "100%" โ€” 100% โ€” always
  • "50%" โ€” 50%
  • "33%" โ€” 33%
  • "25%" โ€” 25%
  • "20%" โ€” 20%
  • "10%" โ€” 10%
  • "5%" โ€” 5%
  • "2%" โ€” 2%
  • "0%" โ€” 0% โ€” never

Default:

  • "0%"

Context:

  • list (config), domain (robot.conf), site (sympa.conf)

This is the variable envelope return path (VERP) thing, and it exists so Sympa can detect bouncing subscriber addresses. ๐Ÿ•ต๏ธ

  • 0%: VERP is literally never used.
  • 100%: VERP is always in use.
โš ๏ธ VERP needs an address with an extension to be supported by your MTA, no cap. If tracking is enabled for a list or a message, VERP gets applied for 100% of subscribers.

๐Ÿ’… tracking

(Paragraph) Message tracking feature ๐Ÿ”

Single occurrence


๐Ÿ’… tracking.delivery_status_notification

tracking message by delivery status notification

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default:

  • "off"

Context:

  • list (config), site (sympa.conf)

๐Ÿ’… tracking.message_disposition_notification

tracking message by message disposition notification

Format:

  • "on" โ€” enabled
  • "on_demand" โ€” on demand
  • "off" โ€” disabled

Default:

  • "off"

Context:

  • list (config), site (sympa.conf)

Available versions:

  • 6.2a.41 and later.

๐Ÿ’… tracking.tracking

who can view message tracking

Format:

  • Name of "tracking" scenario:
  • "owner" โ€” only owner (and listmaster)
  • "private" โ€” restricted to subscribers

Default:

  • "owner"

Context:

  • list (config), site (sympa.conf)

Available versions:

  • 6.2a.3 and later.

๐Ÿ’… tracking.retention_period

Tracking datas are removed after this number of days

Format:

  • Number of days.

Default:

  • 90 (days)

Context:

  • list (config), site (sympa.conf)

Available versions:

  • 6.2a.3 and later.

๐Ÿ’… tracking.message_delivery_notification

See tracking.message_disposition_notification.

Context:

  • list (config)

Available versions:

  • 6.2a.0 to 6.2a.40.

๐Ÿ’… verp_welcome

Remove bouncing new subscribers

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default:

  • "off"

Context:

  • list (config), site (sympa.conf)

Available versions:

  • 6.2.71b.1 and later.

If this is enabled, the welcome message gets sent using VERP so that the subscriber can be removed immediately the moment a bounce happens. ๐Ÿซฅโœจ


๐Ÿ’… verp_remind

Remove subscribers bouncing remind message

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default:

  • "off"

Context:

  • list (config), site (sympa.conf)

Available versions:

  • 6.2.71b.1 and later.

Same energy as above, but for the remind message โ€” sent using VERP, subscriber gone immediately on a bounce. ๐Ÿซฅโœจ


๐Ÿ’… expire_bounce_task

Task for expiration of old bounces

Format:

  • /"\w+"/

Default:

  • "daily"

Context:

  • site (sympa.conf)

This task resets the bouncing info for any address that hasn't bounced in the last 10 days after the latest message distribution. ๐Ÿงน


๐Ÿ’… purge_orphan_bounces_task

Task for cleaning invalidated bounces

Format:

  • /"\w+"/

Default:

  • "monthly"

Context:

  • site (sympa.conf)

This task deletes bounce info for users who unsubscribed. bye bestie ๐Ÿ‘‹


๐Ÿ’… eval_bouncers_task

Task for updating bounce scores

Format:

  • /"\w+"/

Default:

  • "daily"

Context:

  • site (sympa.conf)

This task scans all the bouncing users across all the lists, and updates the bounce_score_subscriber field in the subscriber_table table. Those scores are what bouncer management works off of. ๐Ÿ“Š


๐Ÿ’… process_bouncers_task

Task for management of bouncers

Format:

  • /"\w+"/

Default:

  • "weekly"

Context:

  • site (sympa.conf)

This task runs the actions each list has configured for its bouncing users, based on their scores. โš™๏ธ


๐Ÿ’… purge_tables_task

Task for cleaning tables

Format:

  • /"\w+"/

Default:

  • "daily"

Context:

  • site (sympa.conf)

This one cleans the old tracking info out of the notification_table table. ๐Ÿงฝ


๐Ÿ’… minimum_bouncing_count

Minimum number of bounces

Format:

  • /"\d+"/

Default:

  • 10

Context:

  • site (sympa.conf)

The minimum number of bounces received before a user's bounce score gets updated.


๐Ÿ’… minimum_bouncing_period

Minimum bouncing period

Format:

  • Number of days.

Default:

  • 10 (days)

Context:

  • site (sympa.conf)

The minimum period the bouncing has to last for before a user's bounce score gets updated.


๐Ÿ’… bounce_delay

Delay of bounces

Format:

  • Number of days.

Default:

  • 0 (days)

Context:

  • site (sympa.conf)

The average time it takes for a bounce to get sent back to the mailing list server after a post went out to a list. Usually bounces come back the same day as the original message. โณ


๐Ÿ’… bounce_email_prefix

Prefix of VERP return address

Format:

  • /"\S+"/

Default:

  • "bounce"

Context:

  • site (sympa.conf)

This is the prefix used to build the return-path of probe messages for bounce management, whenever variable envelope return path (VERP) is enabled. Reminder: VERP needs an address with an extension to be supported by your MTA.

๐Ÿšจ If you change the default value, you must modify the mail aliases too. No shortcuts, bestie.

๐Ÿ’… return_path_suffix

Suffix of list return address

Format:

  • /"\S+"/

Default:

  • "-owner"

Context:

  • site (sympa.conf)

The suffix that gets appended to the list name to form the return-path of messages distributed through the list. This address is the one that receives all the non-delivery reports (aka bounces). ๐Ÿ“ฎ


๐ŸŒ€ Loop prevention ๐ŸŒ€

๐Ÿ’… loop_command_max

Maximum number of responses to command message

Format:

  • /"\d+"/

Default:

  • 200

Context:

  • site (sympa.conf)

The max number of command reports sent to one email address. Once you hit it, messages get stored in the bad subdirectory of the incoming message spool, and reports stop being sent. ๐Ÿ›‘


๐Ÿ’… loop_command_sampling_delay

Delay before counting responses to command message

Format:

  • Number of seconds.

Default:

  • 3600 (seconds)

Context:

  • site (sympa.conf)

This parameter sets the delay, in seconds, before the counter of reports sent to an email address gets decremented.


๐Ÿ’… loop_command_decrease_factor

Decrementing factor of responses to command message

Format:

  • /"[.\d]+"/

Default:

  • 0.5

Context:

  • site (sympa.conf)

The decrementation factor (somewhere between 0 and 1) used to figure out the new report counter once the delay has expired.


๐Ÿ’… msgid_table_cleanup_ttl

Expiration period of message ID table

Format:

  • Number of seconds.

Default:

  • 86400 (seconds)

Context:

  • site (sympa.conf)

The expiration period for entries in the table that the sympa_msg.pl daemon maintains, so that duplicate messages caused by a loop don't get delivered. ๐Ÿ”


๐Ÿ’… msgid_table_cleanup_frequency

Cleanup interval of message ID table

Format:

  • Number of seconds.

Default:

  • 3600 (seconds)

Context:

  • site (sympa.conf)

The interval between cleanups of that same table the sympa_msg.pl daemon maintains, again so duplicate messages caused by a loop don't get delivered. ๐Ÿ”


๐ŸŒˆ Automatic lists ๐ŸŒˆ

๐Ÿ’… automatic_list_feature

Automatic list

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default:

  • "off"

Context:

  • domain (robot.conf), site (sympa.conf)

๐Ÿ’… automatic_list_removal

Remove empty automatic list

Format:

  • "none" โ€” do nothing
  • "if_empty" โ€” if_empty

Default:

  • "none"

Context:

  • domain (robot.conf), site (sympa.conf)

If you set this to "if_empty", then Sympa removes automatically created mailing lists right after they're created, provided they have zero list members. poof ๐Ÿ’จ

Example:

automatic_list_removal if_empty

๐Ÿ’… automatic_list_creation

Who is able to create automatic list

Format:

  • Name of "automatic_list_creation" scenario:
  • "family_owner" โ€” Restricted to people subscribed to the list of family owners.
  • "listmaster" โ€” restricted to listmaster
  • "public" โ€” anybody. Be sure you know what you are doing

Default:

  • "public"

Context:

  • domain (robot.conf), site (sympa.conf)

๐Ÿ’… automatic_list_families

Definition of automatic list families

Format:

  • /".+"/

Default:

  • None.

Context:

  • domain (robot.conf), site (sympa.conf)

This defines the families your automatic lists are based on. It's a character string structured like this:

  • each family is separated from the other by a semicolon (;)
  • inside a family definition, each field is separated from the other by a colon (:)
  • each field has the structure: "<field name>=<field value>"

Basically, every time Sympa uses the automatic lists families, the values defined in this parameter are 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 ๐Ÿ’– โ€” when Sympa instantiates a family, these are the files it runs through the parser, bestie.

  • Format: /"[-.\w]+"/
  • Default: "message_header,message_header.mime,message_footer,message_footer.mime,info"
  • Context: domain (robot.conf), site (sympa.conf)

It's a comma-separated list, and heads up: no spaces allowed in the file names. Not even one. ๐Ÿซถ

๐ŸŽ€ family_signoff

Global unsubscription โ€” this one picks the scenario that governs global unsubscribing.

  • Format: Name of family_signoff scenario:
    • auth โ€” need authentication
    • closed โ€” impossible
  • Default: auth
  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.54 and later.

๐Ÿ“ฌ๐Ÿ’€ Tag based spam filtering

๐Ÿšซ spam_status

Type of spam filter โ€” literally which spam filter is doing the vibe check on your mail.

  • Format: Name of spam_status scenario:
    • bogofilter โ€” bogofilter
    • j-chkmail โ€” j-chkmail
    • none โ€” do nothing
    • rspamd โ€” Rspamd
    • spamassassin โ€” SpamAssassin
    • x-spam-status โ€” test X-Spam-Status header
  • Default: x-spam-status
  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.1a.2 and later.

So the lore is this: messages are supposed to get filtered by a spam filter that slaps one or more headers onto them, and this parameter is what picks the special scenario used to decide the message's spam status โ€” ham, spam, or unsure. ๐Ÿ“


๐Ÿ“โœจ Directories

๐Ÿ  home

List home โ€” the base directory where all the list configs live.

  • Format: /.+/
  • Default: $EXPLDIR
  • Context: site (sympa.conf)

๐Ÿ—‚๏ธ etc

Directory for configuration files

  • Format: /.+/
  • Default: $SYSCONFDIR
  • Context: site (sympa.conf)

Base directory of global configuration โ€” everything except sympa.conf, iykyk.

๐Ÿงบ spool

Base directory of spools

  • Format: /.+/
  • Default: $SPOOLDIR
  • Context: site (sympa.conf)

This is the base for all the spools created at runtime. And listen: this directory must be writable by the Sympa user. Non-negotiable. ๐Ÿ’…

๐Ÿ“ฅ queue

Directory for message incoming spool

  • Format: /.+/
  • Default: "$SPOOLDIR/msg"
  • Context: site (sympa.conf)

Both the queue program and the sympa_msg.pl daemon use this spool, so it's giving shared custody. ๐Ÿ˜ญ

๐Ÿ›‘ queuemod

Directory for moderation spool

  • Format: /.+/
  • Default: "$SPOOLDIR/moderation"
  • Context: site (sympa.conf)

๐Ÿ“ฐ queuedigest

Directory for digest spool

  • Format: /.+/
  • Default: "$SPOOLDIR/digest"
  • Context: site (sympa.conf)

๐Ÿ” queueauth

Directory for held message spool

  • Format: /.+/
  • Default: "$SPOOLDIR/auth"
  • Context: site (sympa.conf)

This parameter is named such by historical reason. The way it's just... legacy naming. Iconic behavior tbh. ๐Ÿ™ˆ

๐Ÿ“ค queueoutgoing

Directory for archive spool

  • Format: /.+/
  • Default: "$SPOOLDIR/outgoing"
  • Context: site (sympa.conf)

Also named such by historical reason. We don't ask questions, we just document. ๐Ÿ˜Œ

โœ‰๏ธ queuesubscribe

Directory for held request spool

  • Format: /.+/
  • Default: "$SPOOLDIR/subscribe"
  • Context: site (sympa.conf)

Yep โ€” historical reason again. Three for three. ๐ŸŽ€

๐Ÿท๏ธ queuetopic

Directory for topic spool

  • Format: /.+/
  • Default: "$SPOOLDIR/topic"
  • Context: site (sympa.conf)

๐Ÿ’ฅ queuebounce

Directory for bounce incoming spool

  • Format: /.+/
  • Default: "$SPOOLDIR/bounce"
  • Context: site (sympa.conf)

The bouncequeue program and the bounced.pl daemon both hang out here. ๐Ÿซถ

๐Ÿ“‹ queuetask

Directory for task spool

  • Format: /.+/
  • Default: "$SPOOLDIR/task"
  • Context: site (sympa.conf)

๐Ÿช„ queueautomatic

Directory for automatic list creation spool

  • Format: /.+/
  • Default: "$SPOOLDIR/automatic"
  • Context: site (sympa.conf)

Used by the familyqueue program and the sympa_automatic.pl daemon. Two icons sharing one spool, we love to see it. โœจ

๐Ÿ“ฆ queuebulk

Directory for message outgoing spool

  • Format: /.+/
  • Default: "$SPOOLDIR/bulk"
  • Context: site (sympa.conf)
  • Available versions: 6.2a.41 and later.

And guess what โ€” named such by historical reason. The tradition continues. ๐Ÿ’€

๐Ÿงน 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.

  • Format: /.+/
  • Default: "$SPOOLDIR/tmp"
  • Context: site (sympa.conf)

๐Ÿ‘€ viewmail_dir

Directory to cache formatted messages

  • Format: /.+/
  • Default: "$SPOOLDIR/viewmail"
  • Context: site (sympa.conf)

It's the base directory path of the directories where the HTML view of messages gets cached. Cute. ๐Ÿ“ฌ

๐ŸŽพ bounce_path

Directory for storing bounces

  • Format: /.+/
  • Default: $BOUNCEDIR
  • Context: site (sympa.conf)

This is where the bounced.pl daemon stashes the last bouncing message for every user. A message gets 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 these messages through the web interface, in the bounce management page. ๐Ÿ–ฅ๏ธ

Don't confuse this with the queuebounce parameter, which is the thing that defines the spool where incoming error reports get stored and picked up by the bounced.pl daemon. Different spools, different jobs, bestie.

๐Ÿ—„๏ธ arc_path

Directory for storing archives

  • Format: /.+/
  • Default: $ARCDIR
  • Context: domain (robot.conf), site (sympa.conf)

Where the HTML archives live. The archived.pl daemon uses this one. And listen โ€” it is a good idea to install the archive outside the web document hierarchy, to prevent overcoming of WWSympa's access control. Like, actually do that. ๐Ÿ”ฅ

๐Ÿงฝ purge_spools_task

Task for cleaning spools

  • Format: /"\w+"/
  • Default: "daily"
  • Context: site (sympa.conf)
  • Available versions: 6.2b.4 and later.

This task cleans old content in spools. Marie Kondo energy, but for spools. โœจ

โณ clean_delay_queue

Max age of incoming bad messages

  • Format: Number of days.
  • Default: 7 (days)
  • Context: site (sympa.conf)

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. Yes, it keeps the rejects. It's sentimental. ๐Ÿฅฒ

โณ clean_delay_queueoutgoing

Max age of bad messages for archives

  • Format: Number of days.
  • Default: 7 (days)
  • Context: site (sympa.conf)

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

  • Format: Number of days.
  • Default: 7 (days)
  • Context: site (sympa.conf)

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_queueauth

Max age of held messages

  • Format: Number of days.
  • Default: 30 (days)
  • Context: site (sympa.conf)

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. Gone. Poof. ๐Ÿ‘‹

โณ clean_delay_queuesubscribe

Max age of held requests

  • Format: Number of days.
  • Default: 30 (days)
  • Context: site (sympa.conf)

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. Rip to those requests fr. ๐Ÿ’€

โณ clean_delay_queuetopic

Max age of tagged topics

  • Format: Number of days.
  • Default: 30 (days)
  • Context: site (sympa.conf)

Number of days (automatically or manually) tagged topics are kept in topic spool (as specified by queuetopic parameter). Beyond this deadline, tagging is forgotten. The tags just... fade from memory. ๐Ÿฆ‹

โณ clean_delay_queueautomatic

Max age of incoming bad messages in automatic list creation spool

  • Format: Number of days.
  • Default: 10 (days)
  • Context: site (sympa.conf)

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

  • Format: Number of days.
  • Default: 7 (days)
  • Context: site (sympa.conf)

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

  • Format: Number of days.
  • Default: 14 (days)
  • Context: site (sympa.conf)
  • Available versions: 6.2.6 and later.

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. Poor little template. ๐Ÿ˜ญ

โณ clean_delay_tmpdir

Max age of temporary files

  • Format: Number of days.
  • Default: 7 (days)
  • Context: site (sympa.conf)

Number of days files in temporary directory (as specified by tmpdir parameter) are kept โ€” and yes, that includes the standard error logs. ๐Ÿงน


๐Ÿ”๐ŸŒˆ S/MIME and TLS

So S/MIME auth, decryption and re-encryption? All of it. It requires these external modules: Crypt-OpenSSL-X509 and Crypt-SMIME. ๐Ÿ”ฅ

And TLS client authentication โ€” that one requires an external module: IO-Socket-SSL. ๐Ÿซถ

๐Ÿ“œ cafile

File containing trusted CA certificates

  • Format: /.+/
  • Default: None.
  • Context: site (sympa.conf)
  • Available versions: 3.3.6b.1 and later.

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


๐ŸŽ€ capath

Directory containing trusted CA certificates

Format:

/".+"/

Default: None.

Context: site (sympa.conf)

Available versions: 3.3.6b.1 and later.

So basically, the CA certs chilling in this directory get used for client authentication. And heads up bestie: those certificates need names that include the hash of the subject โ€” or you can make symbolic links to them with such names. The links can be made by running the c_rehash script that's bundled in OpenSSL. ๐Ÿ’…


๐Ÿ” key_passwd

Password used to crypt lists private keys

Format: The value to be concealed.

Default: None.

Context: site (sympa.conf)

If you don't define this, Sympa just assumes your list private keys aren't encrypted. That's the vibe it defaults to.

Example:

key_passwd your_password

๐Ÿ“‚ ssl_cert_dir

Directory containing user certificates

Format:

/".+"/

Default: $EXPLDIR/X509-user-certs

Context: site (sympa.conf)


โœจ Data sources setup โœจ

Okay so this whole section is about pulling in subscribers, owners and moderators from external data sources. It's giving main character energy for your lists.

You're gonna need the right database driver (DBD) modules: DBD-CSV, DBD-mysql, DBD-ODBC, DBD-Oracle, DBD-Pg, DBD-SQLite and/or Net-LDAP. And also, if you need a secure connection (LDAPS) to your LDAP server: IO-Socket-SSL. No cap. ๐Ÿฆ‹


๐Ÿ”” inclusion_notification_feature

Notify subscribers when they are included from a data source?

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default: "off"

Context: list (config), site (sympa.conf)


๐Ÿ‘ฏ member_include

(Paragraph) Subscribers defined in an external data source

Multiple occurrences allowed


member_include.source

the data source

Format:

/"[\w-]+"/

Default: None, mandatory.

Context: list (config)


member_include.source_parameters

data source parameters

Format:

/".*"/

Default: None.

Context: list (config)


member_include.reception

reception mode

Format: Reception mode of list member.

Default: None.

Context: list (config)

Available versions: 6.2.67b.2 and later.

Mail reception mode. ๐Ÿ“ฌ


member_include.visibility

visibility

Format: Visibility mode of list member.

Default: None.

Context: list (config)

Available versions: 6.2.67b.2 and later.

Visibility of the subscriber. ๐Ÿ‘€


๐Ÿ‘‘ owner_include

(Paragraph) Owners defined in an external data source

Multiple occurrences allowed


owner_include.source

the data source

Format:

/"[\w-]+"/

Default: None, mandatory.

Context: list (config)


owner_include.source_parameters

data source parameters

Format:

/".*"/

Default: None.

Context: list (config)

Available versions: 5.0a and later.


owner_include.profile

profile

Format:

  • "privileged" โ€” privileged owner
  • "normal" โ€” normal owner

Default: None.

Context: list (config)


owner_include.reception

reception mode

Format:

  • "mail" โ€” receive notification email
  • "nomail" โ€” no notifications

Default: None.

Context: list (config)


owner_include.visibility

visibility

Format:

  • "conceal" โ€” concealed from list menu
  • "noconceal" โ€” listed on the list menu

Default: None.

Context: list (config)

Available versions: 5.4a.6 and later.


๐Ÿงš editor_include

(Paragraph) Moderators defined in an external data source

Multiple occurrences allowed


editor_include.source

the data source

Format:

/"[\w-]+"/

Default: None, mandatory.

Context: list (config)


editor_include.source_parameters

data source parameters

Format:

/".*"/

Default: None.

Context: list (config)

Available versions: 5.0a and later.


editor_include.reception

reception mode

Format:

  • "mail" โ€” receive notification email
  • "nomail" โ€” no notifications

Default: None.

Context: list (config)


editor_include.visibility

visibility

Format:

  • "conceal" โ€” concealed from list menu
  • "noconceal" โ€” listed on the list menu

Default: None.

Context: list (config)

Available versions: 5.4a.6 and later.


โฑ๏ธ sql_fetch_timeout

Timeout for fetch of include_sql_query

Format: Number of seconds.

Default: 300 (seconds)

Context: list (config), site (sympa.conf)

Available versions: 6.2a.0 and later.


๐Ÿ“„ include_file

File inclusion

Format:

Multiple occurrences allowed.

/"\S+"/

Default: None.

Context: list (config)

Include subscribers from this file. The file should contain one e-mail address per line (lines beginning with a "#" are ignored). Simple as that, bestie. โœจ


๐ŸŒ include_remote_file

(Paragraph) Remote file inclusion

Multiple occurrences allowed


include_remote_file.name

short name for this source

Format:

/".+"/

Default: None.

Context: list (config)


include_remote_file.url

data location URL

Format:

/".+"/

Default: None, mandatory.

Context: list (config)


include_remote_file.user

remote user

Format:

/".+"/

Default: None.

Context: list (config)


include_remote_file.passwd

remote password

Format: The value to be concealed.

Default: None.

Context: list (config)


include_remote_file.timeout

idle timeout

Format: Number of seconds.

Default: 180 (seconds)

Context: list (config)


include_remote_file.ssl_version

SSL version

Format:

  • "ssl_any" โ€” any versions
  • "sslv2" โ€” SSL version 2
  • "sslv3" โ€” SSL version 3
  • "tlsv1" โ€” TLS version 1
  • "tlsv1_1" โ€” TLS version 1.1
  • "tlsv1_2" โ€” TLS version 1.2
  • "tlsv1_3" โ€” TLS version 1.3

Default: "ssl_any"

Context: list (config)


include_remote_file.ssl_ciphers

SSL ciphers used

Format:

/".+"/

Default: "ALL"

Context: list (config)


include_remote_file.ca_verify

Certificate verification

Format:

  • "none" โ€” do nothing
  • "optional" โ€” optional
  • "required" โ€” required

Default: "none"

Context: list (config)


include_remote_file.nosync_time_ranges

Time ranges when inclusion is not allowed

Format:

/$time_ranges/

Default: None.

Context: list (config)


๐Ÿซถ include_sympa_list

(Paragraph) List inclusion

Multiple occurrences allowed

Include subscribers from another list. All subscribers of list listname become subscribers of the current list. You may include as many lists as required, using one include_sympa_list paragraph for each included list. Any list at all may be included; you may therefore include lists which are also defined by the inclusion of other lists.

โš ๏ธ But be careful, bestie โ€” do not include list A in list B and then list B in list A, because that gives rise to an infinite loop. It's giving ouroboros and we are NOT here for it. ๐Ÿ’€

include_sympa_list.name

short name for this source

Format:

/".+"/

Default: None.

Context: list (config)


include_sympa_list.listname

list name to include

Format:

/"$listname(\@$host)?"/

Default: None, mandatory.

Context: list (config)


include_sympa_list.filter

filter definition

Format:

/".*"/

Default: None.

Context: list (config)


include_sympa_list.nosync_time_ranges

Time ranges when inclusion is not allowed

Format:

/$time_ranges/

Default: None.

Context: list (config)


๐ŸŒˆ include_remote_sympa_list

(Paragraph) remote list inclusion

Multiple occurrences allowed

Sympa can contact another Sympa service using HTTPS to fetch a remote list in order to include each member of a remote list as subscriber. You may include as many lists as required, using one include_remote_sympa_list paragraph for each included list.

โš ๏ธ Again โ€” be careful not to give rise to an infinite loop resulting from cross includes. We said what we said. ๐Ÿ’…

For this operation, one Sympa site acts as a server while the other one acts as client. On the server side, the only setting needed is to give permission to the remote Sympa to review the list. This is controlled by the review scenario.


include_remote_sympa_list.name

short name for this source

Format:

/".+"/

Default: None.

Context: list (config)


include_remote_sympa_list.url

data location URL

Format:

/".+"/

Default: None.

Context: list (config)

Available versions: 6.2.45b.1 and later.


include_remote_sympa_list.user

remote user

Format:

/".+"/

Default: None.

Context: list (config)

Available versions: 6.2.45b.1 and later.


include_remote_sympa_list.passwd

remote password

Format: The value to be concealed.

Default: None.

Context: list (config)

Available versions: 6.2.45b.1 and later.


include_remote_sympa_list.host

remote host

Format:

/$host/

Default: None, mandatory.

Context: list (config)

๐Ÿ™ˆ obsoleted. Use "data location URL".

include_remote_sympa_list.port

remote port

Format:

/"\d+"/

Default: 443

Context: list (config)

๐Ÿ™ˆ obsoleted. Use "data location URL".

include_remote_sympa_list.path

remote path of sympa list dump

Format:

/"\S+"/

Default: None, mandatory.

Context: list (config)

๐Ÿ™ˆ obsoleted. Use "data location URL".

include_remote_sympa_list.cert

Deprecated.

Context: list (config)

Available versions: up to 6.2.44.


include_remote_sympa_list.timeout

idle timeout

Format: Number of seconds.

Default: 180 (seconds)

include_remote_sympa_list.ssl_version

okay so this one is literally just "which SSL version are we doing bestie" ๐Ÿ’…

  • Context โ€” list (config)
  • Available versions โ€” 6.2.45b.1 and later.
  • Format:
    • "ssl_any" โ€” any versions
    • "sslv2" โ€” SSL version 2
    • "sslv3" โ€” SSL version 3
    • "tlsv1" โ€” TLS version 1
    • "tlsv1_1" โ€” TLS version 1.1
    • "tlsv1_2" โ€” TLS version 1.2
    • "tlsv1_3" โ€” TLS version 1.3
  • Default โ€” "ssl_any"

include_remote_sympa_list.ssl_ciphers

SSL ciphers used โœจ

  • Format โ€” /".+"/
  • Default โ€” "ALL"
  • Context โ€” list (config)
  • Available versions โ€” 6.2.45b.1 and later.

include_remote_sympa_list.ca_verify

certificate verification, as one does ๐ŸŽ€

  • Format:
    • "none" โ€” do nothing
    • "optional" โ€” optional
    • "required" โ€” required
  • Default โ€” "optional"
  • Context โ€” list (config)
  • Available versions โ€” 6.2.45b.1 and later.

include_remote_sympa_list.nosync_time_ranges

time ranges when inclusion is not allowed (so, the do-not-disturb window ๐Ÿ›‘)

  • Format โ€” /$time_ranges/
  • Default โ€” None.
  • Context โ€” list (config)

the LDAP era bestie, we're doing queries now ๐Ÿ”ฅ

include_ldap_query

(Paragraph) LDAP query inclusion โ€” multiple occurrences allowed, so you can stack these like it's a lil collection ๐Ÿซถ

This paragraph defines parameters for a query returning a list of subscribers. Heads up: this feature requires the Net::LDAP (perlldap) PERL module. No module, no vibes, no LDAP.


include_ldap_query.name

short name for this source โœจ

  • Format โ€” /".+"/
  • Default โ€” None.
  • Context โ€” list (config)

include_ldap_query.host

remote host ๐ŸŒ

  • Format โ€” /$multiple_host_or_url/
  • Default โ€” None, mandatory.
  • Context โ€” list (config)

include_ldap_query.use_tls

use TLS (formerly SSL) ๐Ÿ‘‘

  • Format:
    • "starttls" โ€” use STARTTLS
    • "ldaps" โ€” use LDAPS (LDAP over TLS)
    • "none" โ€” do nothing
  • Default โ€” "none"
  • Context โ€” list (config)
  • Available versions โ€” 6.2.15 and later.

include_ldap_query.ssl_version

SSL version ๐Ÿ’…

  • Format:
    • "sslv2" โ€” SSL version 2
    • "sslv3" โ€” SSL version 3
    • "tlsv1" โ€” TLS version 1
    • "tlsv1_1" โ€” TLS version 1.1
    • "tlsv1_2" โ€” TLS version 1.2
    • "tlsv1_3" โ€” TLS version 1.3
  • Default โ€” "tlsv1"
  • Context โ€” list (config)

include_ldap_query.ssl_ciphers

SSL ciphers used ๐ŸŒˆ

  • Format โ€” /".+"/
  • Default โ€” "ALL"
  • Context โ€” list (config)

include_ldap_query.ca_verify

certificate verification ๐ŸŽ€

  • Format:
    • "none" โ€” do nothing
    • "optional" โ€” optional
    • "required" โ€” required
  • Default โ€” "required"
  • Context โ€” list (config)
  • Available versions โ€” 6.2.13 and later.

include_ldap_query.bind_dn

remote user ๐Ÿซถ

  • Format โ€” /".+"/
  • Default โ€” None.
  • Context โ€” list (config)
  • Available versions โ€” 6.2.57b.1 and later.

include_ldap_query.bind_password

remote password ๐Ÿ”’ (yes it's a secret, treat it like one)

  • Format โ€” The value to be concealed.
  • Default โ€” None.
  • Context โ€” list (config)
  • Available versions โ€” 6.2.57b.1 and later.

include_ldap_query.suffix

suffix โœจ

  • Format โ€” /".+"/
  • Default โ€” None.
  • Context โ€” list (config)

include_ldap_query.scope

search scope ๐Ÿ”

  • Format:
    • "base" โ€” base
    • "one" โ€” one level
    • "sub" โ€” subtree
  • Default โ€” "sub"
  • Context โ€” list (config)

include_ldap_query.deref

dereferencing aliases ๐ŸŒ€

  • Format:
    • "never" โ€” never
    • "search" โ€” in searching subordinates of the base object
    • "find" โ€” in locating the base object
    • "always" โ€” always
  • Default โ€” "find"
  • Context โ€” list (config)
  • Available versions โ€” 6.2.74 and later.

include_ldap_query.timeout

connection timeout โณ

  • Format โ€” Number of seconds.
  • Default โ€” 30 (seconds)
  • Context โ€” list (config)

include_ldap_query.filter

filter ๐Ÿงš

  • Format โ€” /".+"/
  • Default โ€” None, mandatory.
  • Context โ€” list (config)

include_ldap_query.attrs

extracted attribute โญ

  • Format โ€” /"$ldap_attrdesc(\s*,\s*$ldap_attrdesc)?"/
  • Default โ€” "mail"
  • Context โ€” list (config)

include_ldap_query.select

selection (if multiple) ๐Ÿ‘€

  • Format:
    • "all" โ€” all
    • "first" โ€” first entry
    • "regex" โ€” entries matching regular expression
  • Default โ€” "first"
  • Context โ€” list (config)

include_ldap_query.regex

regular expression ๐ŸŽ€

  • Format โ€” /".+"/
  • Default โ€” ""
  • Context โ€” list (config)

include_ldap_query.nosync_time_ranges

time ranges when inclusion is not allowed ๐Ÿ’€

  • Format โ€” /$time_ranges/
  • Default โ€” None.
  • Context โ€” list (config)
  • Available versions โ€” 6.2a.16 and later.

include_ldap_query.pagesize

LDAP page size ๐Ÿ“„

  • Format โ€” /"\d*"/
  • Default โ€” None.
  • Context โ€” list (config)
  • Available versions โ€” 6.2.74 and later.

Number of records to fetch per batch (paging), for a LDAP server that supports paging. If not set or set to zero, do not use paging. Typically 1000 for an Active Directory server, to avoid "SizeLimit" errors.


include_ldap_query.passwd

See include_ldap_query.bind_password.

  • Context โ€” list (config)
  • Available versions โ€” up to 6.2.56.

include_ldap_query.port

Deprecated. โš ๏ธ (it's giving "old news, bestie", don't build your life around it)

  • Context โ€” list (config)

include_ldap_query.use_ssl

See include_ldap_query.use_tls.

  • Context โ€” list (config)
  • Available versions โ€” 5.3a.2 to 6.2.14.

include_ldap_query.user

See include_ldap_query.bind_dn.

  • Context โ€” list (config)
  • Available versions โ€” up to 6.2.56.

include_ldap_2level_query

(Paragraph) LDAP 2-level query inclusion โ€” multiple occurrences allowed ๐Ÿ”ฅ

This paragraph defines parameters for a two-level query returning a list of subscribers. Usually the first-level query returns a list of DNs and the second-level queries convert the DNs into e-mail addresses. This feature requires the Net::LDAP (perlldap) PERL module. Two levels, two slays, no cap.


include_ldap_2level_query.name

short name for this source โœจ

  • Format โ€” /".+"/
  • Default โ€” None.
  • Context โ€” list (config)

include_ldap_2level_query.host

remote host ๐ŸŒ

  • Format โ€” /$multiple_host_or_url/
  • Default โ€” None, mandatory.
  • Context โ€” list (config)

include_ldap_2level_query.use_tls

use TLS (formerly SSL) ๐Ÿ‘‘

  • Format:
    • "starttls" โ€” use STARTTLS
    • "ldaps" โ€” use LDAPS (LDAP over TLS)
    • "none" โ€” do nothing
  • Default โ€” "none"
  • Context โ€” list (config)
  • Available versions โ€” 6.2.15 and later.

include_ldap_2level_query.ssl_version

SSL version ๐Ÿ’…

  • Format:
    • "sslv2" โ€” SSL version 2
    • "sslv3" โ€” SSL version 3
    • "tlsv1" โ€” TLS version 1
    • "tlsv1_1" โ€” TLS version 1.1
    • "tlsv1_2" โ€” TLS version 1.2
    • "tlsv1_3" โ€” TLS version 1.3
  • Default โ€” "tlsv1"
  • Context โ€” list (config)

include_ldap_2level_query.ssl_ciphers

SSL ciphers used ๐ŸŒˆ

  • Format โ€” /".+"/
  • Default โ€” "ALL"
  • Context โ€” list (config)

include_ldap_2level_query.ca_verify

certificate verification ๐ŸŽ€

  • Format:
    • "none" โ€” do nothing
    • "optional" โ€” optional
    • "required" โ€” required
  • Default โ€” "required"
  • Context โ€” list (config)
  • Available versions โ€” 6.2.13 and later.

include_ldap_2level_query.bind_dn

remote user ๐Ÿซถ

  • Format โ€” /".+"/
  • Default โ€” None.
  • Context โ€” list (config)
  • Available versions โ€” 6.2.57b.1 and later.

include_ldap_2level_query.bind_password

remote password ๐Ÿ”’

  • Format โ€” The value to be concealed.
  • Default โ€” None.
  • Context โ€” list (config)
  • Available versions โ€” 6.2.57b.1 and later.

include_ldap_2level_query.suffix1

first-level suffix โœจ

  • Format โ€” /".+"/
  • Default โ€” None.
  • Context โ€” list (config)

include_ldap_2level_query.scope1

first-level search scope ๐Ÿ”

  • Format:
    • "base" โ€” base
    • "one" โ€” one level
    • "sub" โ€” subtree
  • Default โ€” "sub"
  • Context โ€” list (config)

include_ldap_2level_query.deref1

dereferencing aliases ๐ŸŒ€

  • Format:
    • "never" โ€” never
    • "search" โ€” in searching subordinates of the base object
    • "find" โ€” in locating the base object
    • "always" โ€” always
  • Default โ€” "find"
  • Context โ€” list (config)
  • Available versions โ€” 6.2.74 and later.

include_ldap_2level_query.timeout1

first-level connection timeout โณ

  • Format โ€” Number of seconds.
  • Default โ€” 30 (seconds)
  • Context โ€” list (config)

include_ldap_2level_query.filter1

first-level filter ๐Ÿงš

  • Format โ€” /".+"/
  • Default โ€” None, mandatory.
  • Context โ€” list (config)

include_ldap_2level_query.attrs1

first-level extracted attribute โญ

  • Format โ€” /$ldap_attrdesc/
  • Default โ€” None.
  • Context โ€” list (config)

include_ldap_2level_query.select1

first-level selection ๐Ÿ‘€

  • Format:
    • "all" โ€” all
    • "first" โ€” first entry
    • "regex" โ€” entries matching regular expression
  • Default โ€” "first"
  • Context โ€” list (config)

include_ldap_2level_query.regex1

first-level regular expression ๐ŸŽ€

  • Format โ€” /".+"/
  • Default โ€” ""
  • Context โ€” list (config)

include_ldap_2level_query.suffix2

second-level suffix template โœจ (template!! it's built from stuff, not just a string)

  • Format โ€” /".+"/
  • Default โ€” None.
  • Context โ€” list (config)

include_ldap_2level_query.scope2

second-level search scope ๐Ÿ”

  • Format:
    • "base" โ€” base
    • "one" โ€” one level
    • "sub" โ€” subtree
  • Default โ€” "sub"
  • Context โ€” list (config)

include_ldap_2level_query.deref2

dereferencing aliases ๐ŸŒ€

Format:

"never" - never
"search" - in searching subordinates of the base object
"find" - in locating the base object
"always" - always
  • Default: "find" ๐Ÿ’–
  • Context: list (config)
  • Available versions: 6.2.74 and later.

include_ldap_2level_query.timeout2

second-level connection timeout, bestie โณ

  • Format: Number of seconds.
  • Default: 30 (seconds)
  • Context: list (config)

include_ldap_2level_query.filter2

the second-level filter template ๐ŸŽ€

  • Format: /".+"/
  • Default: None, mandatory. (yes it's required, no skipping ๐Ÿ™ˆ)
  • Context: list (config)

include_ldap_2level_query.attrs2

second-level extracted attribute โœจ

  • Format: /"$ldap_attrdesc(\s*,\s*$ldap_attrdesc)?"/
  • Default: "mail"
  • Context: list (config)

include_ldap_2level_query.select2

second-level selection, like who gets picked ๐Ÿ‘‘

  • Format:
"all" - all
"first" - first entry
"regex" - entries matching regular expression
  • Default: "first"
  • Context: list (config)

include_ldap_2level_query.regex2

second-level regular expression ๐Ÿ”

  • Format: /".+"/
  • Default: ""
  • Context: list (config)

include_ldap_2level_query.nosync_time_ranges

time ranges when inclusion is not allowed ๐Ÿšซ

  • Format: /$time_ranges/
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2a.16 and later.

include_ldap_2level_query.pagesize

LDAP page size ๐Ÿ“„

  • Format: /"\d*"/
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2.74 and later.
Number of records to fetch per batch (paging), for a LDAP server that supports paging. If not set or set to zero, do not use paging. Typically 1000 for an Active Directory server, to avoid "SizeLimit" errors โ€” so if AD is being dramatic about size limits, this is your girl ๐Ÿ’…

include_ldap_2level_query.passwd

See "include_ldap_2level_query.bind_password".

  • Context: list (config)
  • Available versions: up to 6.2.56.

include_ldap_2level_query.port

Deprecated. like, we don't use her anymore โšฐ๏ธ

  • Context: list (config)

include_ldap_2level_query.use_ssl

See "include_ldap_2level_query.use_tls".

  • Context: list (config)
  • Available versions: 5.3a.2 to 6.2.14.

include_ldap_2level_query.user

See "include_ldap_2level_query.bind_dn".

  • Context: list (config)
  • Available versions: up to 6.2.56.

include_sql_query

(Paragraph) SQL query inclusion ๐Ÿ—„๏ธ

Multiple occurrences allowed โ€” yes you can stack these, she's versatile โœจ

This parameter is used to define the SQL query parameters.

include_sql_query.name

short name for this source, a lil nickname ๐Ÿท๏ธ

  • Format: /".+"/
  • Default: None.
  • Context: list (config)

include_sql_query.db_type

database type

  • Format: /"\S+"/
  • Default: None, mandatory. (mandatory!! no skipping ๐Ÿ˜ค)
  • Context: list (config)

include_sql_query.db_name

database name

  • Format: /"\S+"/
  • Default: None, mandatory.
  • Context: list (config)

include_sql_query.db_host

remote host ๐ŸŒ

  • Format: /$host/
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2.57b.1 and later.

include_sql_query.db_port

database port ๐Ÿ”Œ

  • Format: /"\d+"/
  • Default: None.
  • Context: list (config)

include_sql_query.db_options

connection options โš™๏ธ

  • Format: /".+"/
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2.57b.1 and later.

include_sql_query.db_env

environment variables for database connection ๐ŸŒฑ

  • Format: /"\w+\=\S+(;\w+\=\S+)*"/
  • Default: None.
  • Context: list (config)

include_sql_query.db_user

remote user

  • Format: /"\S+"/
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2.57b.1 and later.

include_sql_query.db_passwd

remote password ๐Ÿคซ

  • Format: The value to be concealed.
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2.57b.1 and later.
lowkey please don't leave this lying around in plain sight, it's giving security nightmare ๐Ÿ’€

include_sql_query.sql_query

the actual SQL query, the main character ๐Ÿ’…

  • Format: /$sql_query/
  • Default: None, mandatory.
  • Context: list (config)

include_sql_query.f_dir

See "include_sql_query.db_name".

  • Context: list (config)
  • Available versions: up to 6.2.70.

include_sql_query.nosync_time_ranges

time ranges when inclusion is not allowed ๐Ÿšซ

  • Format: /$time_ranges/
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2a.16 and later.

include_sql_query.connect_options

See "include_sql_query.db_options".

  • Context: list (config)
  • Available versions: up to 6.2.56.

include_sql_query.host

See "include_sql_query.db_host".

  • Context: list (config)
  • Available versions: up to 6.2.56.

include_sql_query.passwd

See "include_sql_query.db_passwd".

  • Context: list (config)
  • Available versions: up to 6.2.56.

include_sql_query.user

See "include_sql_query.db_user".

  • Context: list (config)
  • Available versions: up to 6.2.56.

ttl

TTL of user data โฐ

  • Format: Number of seconds.
  • Default: 3600 (seconds)
  • Context: list (config), site (sympa.conf)

Sympa caches user data extracted using the include parameter. Their TTL (time-to-live) within Sympa can be controlled using this parameter. The default value is 3600 ๐Ÿ’–

distribution_ttl

TTL of user data for message distribution ๐Ÿ“ฌ

  • Format: Number of seconds.
  • Default: None.
  • Context: list (config), site (sympa.conf)

This parameter defines the delay since the last synchronization after which the user data will be updated before performing message distribution โ€” so basically, how stale the data is allowed to get before a message goes out ๐ŸŒธ


include_ldap_ca

(Paragraph) LDAP query custom attribute ๐ŸŽ€

Multiple occurrences allowed โœจ

include_ldap_ca.name

short name for this source

  • Format: /".+"/
  • Default: None.
  • Context: list (config)

include_ldap_ca.host

remote host ๐ŸŒ

  • Format: /$multiple_host_or_url/
  • Default: None, mandatory.
  • Context: list (config)

include_ldap_ca.use_tls

use TLS (formerly SSL) ๐Ÿ”

  • Format:
"starttls" - use STARTTLS
"ldaps" - use LDAPS (LDAP over TLS)
"none" - do nothing
  • Default: "none"
  • Context: list (config)
  • Available versions: 6.2.15 and later.

include_ldap_ca.ssl_version

SSL version

  • Format:
"sslv2" - SSL version 2
"sslv3" - SSL version 3
"tlsv1" - TLS version 1
"tlsv1_1" - TLS version 1.1
"tlsv1_2" - TLS version 1.2
"tlsv1_3" - TLS version 1.3
  • Default: "tlsv1"
  • Context: list (config)

include_ldap_ca.ssl_ciphers

SSL ciphers used ๐Ÿ”’

  • Format: /".+"/
  • Default: "ALL"
  • Context: list (config)

include_ldap_ca.ca_verify

certificate verification โœ…

  • Format:
"none" - do nothing
"optional" - optional
"required" - required
  • Default: "required"
  • Context: list (config)
  • Available versions: 6.2.13 and later.

include_ldap_ca.bind_dn

remote user

  • Format: /".+"/
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2.57b.1 and later.

include_ldap_ca.bind_password

remote password ๐Ÿคซ

  • Format: The value to be concealed.
  • Default: None.
  • Context: list (config)
  • Available versions: 6.2.57b.1 and later.

include_ldap_ca.suffix

suffix

  • Format: /".+"/
  • Default: None.
  • Context: list (config)

include_ldap_ca.scope

search scope ๐Ÿงญ

  • Format:
"base" - base
"one" - one level
"sub" - subtree
  • Default: "sub"
  • Context: list (config)

include_ldap_ca.deref

dereferencing aliases

  • Format:
"never" - never
"search" - in searching subordinates of the base object
"find" - in locating the base object
"always" - always
  • Default: "find"
  • Context: list (config)
  • Available versions: 6.2.74 and later.

include_ldap_ca.timeout

connection timeout โณ

  • Format: Number of seconds.
  • Default: 30 (seconds)
  • Context: list (config)

include_ldap_ca.filter

filter

  • Format: /".+"/
  • Default: None, mandatory.
  • Context: list (config)

include_ldap_ca.attrs

extracted attribute โœจ

  • Format: /"$ldap_attrdesc(\s*,\s*$ldap_attrdesc)?"/
  • Default: "mail"
  • Context: list (config)

include_ldap_ca.email_entry

Name of email entry ๐Ÿ“ง

  • Format: /"\S+"/
  • Default: None, mandatory.
  • Context: list (config)

include_ldap_ca.select

selection (if multiple) ๐Ÿ‘‘

  • Format:
"all" - all
"first" - first entry
"regex" - entries matching regular expression
  • Default: "first"
  • Context: list (config)

include_ldap_ca.regex

regular expression ๐Ÿ”

  • Format: /".+"/
  • Default: ""
  • Context: list (config)

include_ldap_ca.nosync_time_ranges

time ranges when inclusion is not allowed ๐Ÿšซ

  • Format: /$time_ranges/
  • Default: None.
  • Context: list (config)

include_ldap_ca.passwd

See "include_ldap_ca.bind_password".

  • Context: list (config)
  • Available versions: up to 6.2.56.

include_ldap_ca.port

Deprecated. โšฐ๏ธ

  • Context: list (config)

include_ldap_ca.use_ssl

See "include_ldap_ca.use_tls".

  • Context: list (config)
  • Available versions: 6.2a? to 6.2.14.

include_ldap_ca.user

See "include_ldap_ca.bind_dn".

  • Context: list (config)
  • Available versions: up to 6.2.56.

include_ldap_2level_ca

(Paragraph) LDAP 2-level query custom attribute ๐ŸŒˆ

Multiple occurrences allowed ๐Ÿ’ซ

include_ldap_2level_ca.name

short name for this source

Format:

/".+"/

Default: None.

Context: list (config)

include_ldap_2level_ca.host

remote host ๐Ÿ‘‘

Format:

/$multiple_host_or_url/

Default: None, mandatory.

Context: list (config)

include_ldap_2level_ca.use_tls

use TLS (formerly SSL) โœจ

Format:

"starttls" - use STARTTLS
"ldaps" - use LDAPS (LDAP over TLS)
"none" - do nothing

Default: "none"

Context: list (config)

Available versions: 6.2.15 and later.

include_ldap_2level_ca.ssl_version

SSL version ๐Ÿ”

Format:

"sslv2" - SSL version 2
"sslv3" - SSL version 3
"tlsv1" - TLS version 1
"tlsv1_1" - TLS version 1.1
"tlsv1_2" - TLS version 1.2
"tlsv1_3" - TLS version 1.3

Default: "tlsv1"

Context: list (config)

include_ldap_2level_ca.ssl_ciphers

SSL ciphers used ๐ŸŽ€

Format:

/".+"/

Default: "ALL"

Context: list (config)

include_ldap_2level_ca.ca_verify

Certificate verification ๐Ÿงš

Format:

"none" - do nothing
"optional" - optional
"required" - required

Default: "required"

Context: list (config)

Available versions: 6.2.13 and later.

include_ldap_2level_ca.bind_dn

remote user ๐Ÿซถ

Format:

/".+"/

Default: None.

Context: list (config)

Available versions: 6.2.57b.1 and later.

include_ldap_2level_ca.bind_password

remote password ๐Ÿ™ˆ

Format: The value to be concealed.

Default: None.

Context: list (config)

Available versions: 6.2.57b.1 and later.

include_ldap_2level_ca.suffix1

first-level suffix ๐Ÿ’œ

Format:

/".+"/

Default: None.

Context: list (config)

include_ldap_2level_ca.scope1

first-level search scope ๐Ÿ”

Format:

"base" - base
"one" - one level
"sub" - subtree

Default: "sub"

Context: list (config)

include_ldap_2level_ca.deref1

dereferencing aliases ๐Ÿ”„

Format:

"never" - never
"search" - in searching subordinates of the base object
"find" - in locating the base object
"always" - always

Default: "find"

Context: list (config)

Available versions: 6.2.74 and later.

include_ldap_2level_ca.timeout1

first-level connection timeout โฐ

Format: Number of seconds.

Default: 30 (seconds)

Context: list (config)

include_ldap_2level_ca.filter1

first-level filter ๐ŸŽฏ

Format:

/".+"/

Default: None, mandatory.

Context: list (config)

include_ldap_2level_ca.attrs1

first-level extracted attribute ๐ŸŒธ

Format:

/$ldap_attrdesc/

Default: None.

Context: list (config)

include_ldap_2level_ca.select1

first-level selection โญ

Format:

"all" - all
"first" - first entry
"regex" - entries matching regular expression

Default: "first"

Context: list (config)

include_ldap_2level_ca.regex1

first-level regular expression ๐Ÿฆ‹

Format:

/".+"/

Default: ""

Context: list (config)

include_ldap_2level_ca.suffix2

second-level suffix template ๐Ÿ’ซ

Format:

/".+"/

Default: None.

Context: list (config)

include_ldap_2level_ca.scope2

second-level search scope ๐Ÿ”Ž

Format:

"base" - base
"one" - one level
"sub" - subtree

Default: "sub"

Context: list (config)

include_ldap_2level_ca.deref2

dereferencing aliases ๐Ÿ”

Format:

"never" - never
"search" - in searching subordinates of the base object
"find" - in locating the base object
"always" - always

Default: "find"

Context: list (config)

Available versions: 6.2.74 and later.

include_ldap_2level_ca.timeout2

second-level connection timeout โณ

Format: Number of seconds.

Default: 30 (seconds)

Context: list (config)

include_ldap_2level_ca.filter2

second-level filter template ๐ŸŽฏ

Format:

/".+"/

Default: None, mandatory.

Context: list (config)

include_ldap_2level_ca.attrs2

second-level extracted attribute ๐Ÿ“ง

Format:

/$ldap_attrdesc/

Default: "mail"

Context: list (config)

include_ldap_2level_ca.select2

second-level selection โญ

Format:

"all" - all
"first" - first entry
"regex" - entries matching regular expression

Default: "first"

Context: list (config)

include_ldap_2level_ca.regex2

second-level regular expression ๐Ÿฆ‹

Format:

/".+"/

Default: ""

Context: list (config)

include_ldap_2level_ca.email_entry

Name of email entry ๐Ÿ’Œ

Format:

/"\S+"/

Default: None, mandatory.

Context: list (config)

include_ldap_2level_ca.nosync_time_ranges

Time ranges when inclusion is not allowed ๐Ÿ™…โ€โ™€๏ธ

Format:

/$time_ranges/

Default: None.

Context: list (config)

include_ldap_2level_ca.passwd

See "include_ldap_2level_ca.bind_password".

Context: list (config)

Available versions: up to 6.2.56.

include_ldap_2level_ca.port

Deprecated. ๐Ÿ’€ as in, don't use it bestie

Context: list (config)

include_ldap_2level_ca.use_ssl

See "include_ldap_2level_ca.use_tls".

Context: list (config)

Available versions: 6.2a? to 6.2.14.

include_ldap_2level_ca.user

See "include_ldap_2level_ca.bind_dn".

Context: list (config)

Available versions: up to 6.2.56.


include_sql_ca

(Paragraph) SQL query custom attribute ๐Ÿ—„๏ธ

Multiple occurrences allowed

include_sql_ca.name

short name for this source

Format:

/".+"/

Default: None.

Context: list (config)

include_sql_ca.db_type

database type ๐Ÿงฉ

Format:

/"\S+"/

Default: None, mandatory.

Context: list (config)

include_sql_ca.db_name

database name ๐Ÿ“š

Format:

/"\S+"/

Default: None, mandatory.

Context: list (config)

include_sql_ca.db_host

remote host ๐Ÿ–ฅ๏ธ

Format:

/$host/

Default: None.

Context: list (config)

Available versions: 6.2.57b.1 and later.

include_sql_ca.db_port

database port ๐Ÿ”Œ

Format:

/"\d+"/

Default: None.

Context: list (config)

include_sql_ca.db_options

connection options โš™๏ธ

Format:

/".+"/

Default: None.

Context: list (config)

Available versions: 6.2.57b.1 and later.

include_sql_ca.db_env

environment variables for database connection ๐ŸŒฑ

Format:

/"\w+\=\S+(;\w+\=\S+)*"/

Default: None.

Context: list (config)

include_sql_ca.db_user

remote user ๐Ÿซถ

Format:

/"\S+"/

Default: None.

Context: list (config)

Available versions: 6.2.57b.1 and later.

include_sql_ca.db_passwd

remote password ๐Ÿ™ˆ

Format: The value to be concealed.

Default: None.

Context: list (config)

Available versions: 6.2.57b.1 and later.

include_sql_ca.sql_query

SQL query ๐Ÿ“

Format:

/$sql_query/

Default: None, mandatory.

Context: list (config)

include_sql_ca.f_dir

See "include_sql_ca.db_name".

Context: list (config)

Available versions: up to 6.2.70.

include_sql_ca.email_entry

Name of email entry ๐Ÿ’Œ

Format:

/"\S+"/

Default: None, mandatory.

Context: list (config)

include_sql_ca.nosync_time_ranges

Time ranges when inclusion is not allowed ๐Ÿ™…โ€โ™€๏ธ

Format:

/$time_ranges/

Default: None.

Context: list (config)

include_sql_ca.connect_options

See "include_sql_ca.db_options".

Context: list (config)

Available versions: up to 6.2.56.

include_sql_ca.host

See "include_sql_ca.db_host".

Context: list (config)

Available versions: up to 6.2.56.

include_sql_ca.passwd

See "include_sql_ca.db_passwd".

Context: list (config)

Available versions: up to 6.2.56.

include_sql_ca.user

See "include_sql_ca.db_user".

Context: list (config)

Available versions: up to 6.2.56.


๐ŸŒˆ DKIM/DMARC/ARC ๐ŸŒˆ

DKIM signature verification and re-signing. It requires an external module: Mail-DKIM. โœ๏ธ

ARC seals on forwarded messages. It requires an external module: Mail-DKIM. ๐Ÿ”

dkim_add_signature_to

Which service messages to be signed โœ‰๏ธ

Format:

/"(?:list|robot)(?:,(?:list|robot))*"/

Default: "robot,list"

Context: domain (robot.conf), site (sympa.conf)

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

dkim_signer_identity

The "i=" tag as defined in rfc 4871 ๐Ÿท๏ธ

Format:

/"\S+"/

Default: None.

Context: domain (robot.conf), site (sympa.conf)

Default is null.

dkim_feature

Insert DKIM signature to messages sent to the list ๐Ÿ“จ

Format:

"on" - enabled
"off" - disabled

Default: "off"

Context: domain (robot.conf), site (sympa.conf)

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

dkim_parameters

(Paragraph) DKIM configuration ๐Ÿ› ๏ธ

Single occurrence

A set of parameters in order to define outgoing DKIM signature

dkim_parameters.private_key_path

File path for DKIM private key ๐Ÿ”‘

Format:

/"\S+"/

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

The file must contain a PEM encoded private key ๐ŸŒธ

๐Ÿฆ‹ "dkim_parameters.selector"

Selector for DNS lookup of DKIM public key โ€” yes bestie, it's giving DNS detective energy ๐Ÿ”

Format: / "\S+" /

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

So the selector is literally what you use to build the DNS query for the public key. It's up to you which value you pick โ€” iconic, we love freedom โ€” but pls actually verify that you can query the public DKIM key for "<selector>._domainkey.your_domain" before you commit, ok? ๐Ÿ’…


๐Ÿ’€ "dkim_parameters.header_list"

Deprecated. That's it, that's the whole vibe. She's retired, don't use her โœจ

Context: list (config), domain (robot.conf), site (sympa.conf)


๐ŸŒธ "dkim_parameters.signer_domain"

The DKIM "d=" tag โ€” and lowkey you should probably just use the default value here, bestie.

Format: /$domain/

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

So the DKIM "d=" tag is the domain of the signing entity. And the rule is non-negotiable: the list domain MUST be included in the "d=" domain. No cap. ๐Ÿ‘‘


๐ŸŽ€ "dkim_parameters.signer_identity"

The DKIM "i=" tag โ€” and honestly you should probably leave this parameter empty, that's the move.

Format: / "\S+" /

Default: None.

Context: list (config)

So this is the DKIM "i=" tag, and you should probably not use this parameter at all, as recommended by RFC 4871. For list broadcasted messages the default is i=<listname>-request@<domain>. Periodt. ๐Ÿ™ˆ


๐Ÿ”ฅ "dkim_signature_apply_on"

The categories of messages sent to the list that will be signed using DKIM. Choose your fighters carefully โš”๏ธ

Format: Multiple values allowed, separated by ",".

  • "md5_authenticated_messages" โ€” authenticated by password
  • "smime_authenticated_messages" โ€” authenticated by S/MIME signature
  • "dkim_authenticated_messages" โ€” with successfully verified DKIM signature
  • "editor_validated_messages" โ€” approved by moderator
  • "none" โ€” do nothing
  • "any" โ€” any messages

Default: "md5_authenticated_messages,smime_authenticated_messages,dkim_authenticated_messages,editor_validated_messages"

Context: list (config), domain (robot.conf), site (sympa.conf)

This parameter controls in which case messages must be signed using DKIM. You may sign every message by choosing 'any', or just a subset โ€” main character choice, your call. The parameter value is a comma separated list of keywords. ๐Ÿ’–


โœจ "arc_feature"

Add ARC seals to messages sent to the list. Sealing the gossip with โœจcryptographic waxโœจ

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default: "off"

Context: list (config), domain (robot.conf), site (sympa.conf)

Available versions: 6.2.37b.1 and later.

Enable/Disable ARC. Heads up tho: this feature requires Mail::DKIM::ARC to be installed, and maybe some custom scenario to be updated. Don't come for me if you skipped that step ๐Ÿ˜ญ


๐Ÿงš "arc_srvid"

Authentication service identifier (authserv-id) for Authentication-Results used in ARC seal.

Format: /$rfc2045_parameter_value/

Default: None.

Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2.37b.1 and later.

Typically the domain of the mail server. Simple as that, no thoughts needed ๐ŸŒˆ


๐Ÿ’œ "arc_parameters"

(Paragraph) ARC configuration

Single occurrence

A whole set of parameters in order to define outgoing ARC seal. She's a bundle, she's a package deal ๐Ÿซถ


๐Ÿ“ "arc_parameters.private_key_path"

File path for ARC private key. Guard it like your Notes app password ๐Ÿ”

Format: / "\S+" /

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

The file must contain a PEM encoded private key. Defaults to same file as DKIM private key.


โญ "arc_parameters.selector"

Selector for DNS lookup of ARC public key.

Format: / "\S+" /

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

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". Default is the same selector as for DKIM signatures. Reuse, recycle, slay โ™ป๏ธ


๐Ÿฆ‹ "arc_parameters.signer_domain"

ARC "d=" tag, you should probably use the default value.

Format: /$domain/

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

The ARC "d=" tag is the domain of the signing entity. The DKIM d= domain name is used as its default value.


๐ŸŒˆ "arc_parameters.arc_private_key_path"

See "arc_parameters.private_key_path".

Context: list (config)

Available versions: up to 6.2.70.


๐ŸŽ€ "arc_parameters.arc_selector"

See "arc_parameters.selector".

Context: list (config)

Available versions: up to 6.2.70.


๐Ÿ’… "arc_parameters.arc_signer_domain"

See "arc_parameters.signer_domain".

Context: list (config)

Available versions: up to 6.2.70.


๐Ÿ‘‘ "dmarc_protection"

(Paragraph) DMARC Protection

Single occurrence

Parameters to define how to manage From address processing to avoid some domains' excessive DMARC protection. Basically: how do we keep from getting yeeted into spam jail ๐Ÿ™


๐Ÿ”ฅ "dmarc_protection.mode"

Protection modes. Pick your roster, bestie ๐ŸŽฎ

Format: Multiple values allowed, separated by ",".

  • "none" โ€” do nothing
  • "all" โ€” all
  • "dkim_signature" โ€” DKIM signature exists
  • "dmarc_reject" โ€” DMARC policy suggests rejection
  • "dmarc_any" โ€” DMARC policy exists
  • "dmarc_quarantine" โ€” DMARC policy suggests quarantine
  • "domain_regex" โ€” domain matching regular expression

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

Select one or more operation modes:

  • "Domain matching regular expression" (domain_regex) matches the specified Domain regular expression
  • "DKIM signature exists" (dkim_signature) matches any message with a DKIM signature header
  • "DMARC policy ..." (dmarc_*) matches messages from sender domains with a DMARC policy as given
  • "all" (all) matches all messages

Example:

dmarc_protection.mode dmarc_reject,dkim_signature

๐ŸŒธ "dmarc_protection.domain_regex"

Regular expression for domain name match.

Format: /".+"/

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

Regular expression match pattern for From domain. Regex girlies rise up ๐Ÿงš


๐Ÿ’– "dmarc_protection.other_email"

New From address.

Format: /".+"/

Default: None.

Context: list (config), domain (robot.conf), site (sympa.conf)

This is the email address to use when modifying the From header. It defaults to the list address. This is similar to Anonymisation but preserves the original sender details in the From address phrase. Best of both worlds, honestly iconic ๐Ÿ’…


โœจ "dmarc_protection.phrase"

New From name format.

Format:

  • "display_name" โ€” "Name"
  • "name_and_email" โ€” "Name" (e-mail)
  • "name_via_list" โ€” "Name" (via List)
  • "name_email_via_list" โ€” "Name" (e-mail via List)
  • "list_for_name" โ€” "List" (on behalf of Name)
  • "list_for_email" โ€” "List" (on behalf of e-mail)

Default: "name_via_list"

Context: list (config), domain (robot.conf), site (sympa.conf)

This is the format to be used for the sender name part of the new From header field. Pick the aesthetic that fits your list ๐ŸŽ€


๐Ÿฆ‹ "remove_dkim_headers"

Remove DKIM signatures in incoming messages.

Format:

  • "on" โ€” enabled
  • "off" โ€” disabled

Default: "off"

Context: list (config), domain (robot.conf), site (sympa.conf)

Available versions: 6.2.74 and later.

Normally this should be turned off. It can be turned on when DKIM signatures that cannot be verified at the recipient site cause problems.

So like, only flip this on if things are genuinely breaking. Not a vibe you want by default, fr fr ๐Ÿ˜ญ


๐ŸŒˆ List address verification ๐ŸŒˆ

Checks if an alias with the same name as the list to be created already exists on the SMTP server. This feature requires an external module: Net-SMTP. Yes bestie, an external module, go install it ๐Ÿ’ช


โญ "list_check_helo"

SMTP HELO (EHLO) parameter used for address verification.

Format: / "\S+" /

Default: None.

Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2a.0 and later.

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.

Format: /$hostport/

Default: None.

Context: domain (robot.conf), site (sympa.conf)

This is needed if you are running Sympa on a host but you handle all your mail on a separate mail relay. Long-distance relationship, but make it SMTP ๐Ÿ“ฌ

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.

Format: / "\S+" /

Default: "request,owner,editor,unsubscribe,subscribe"

Context: domain (robot.conf), site (sympa.conf)

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. Double duty queen ๐Ÿ‘‘


๐Ÿงš Antivirus plug-in ๐Ÿงš

๐Ÿ”ฅ "antivirus_path"

Path to the antivirus scanner engine.

Format: /".+"/

Default: None.

Context: domain (robot.conf), site (sympa.conf)

Supported antivirus: Clam AntiVirus/clamscan & clamdscan, McAfee/uvscan, Fsecure/fsav, Sophos, AVP and Trend Micro/VirusWall. A whole squad of malware-fighting besties ๐Ÿ›ก๏ธ

Example:

antivirus_path /usr/local/bin/clamscan

๐ŸŽ€ "antivirus_args"

Antivirus plugin command line arguments.

Format: /".+"/

Default: None.

Context: domain (robot.conf), site (sympa.conf)

Example:

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

๐Ÿ’… "antivirus_notify"

Notify sender if virus checker detects malicious content. Like, tell them. They gotta know ๐Ÿ‘€

Format:

  • "sender" โ€” sender
  • "delivery_status" โ€” send back DSN
  • "none" โ€” do nothing

Default: "sender"

Context: domain (robot.conf), site (sympa.conf)

"sender" to notify originator of the message, "delivery_status" to send delivery status, or "none". Pick one, that's the whole menu ๐Ÿ“


โœจ Miscellaneous โœจ

๐ŸŒˆ "email"

Local part of Sympa email address.

Format: / "\S+" /

Default: "sympa"

Context: domain (robot.conf), site (sympa.conf)

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.

Do NOT forget the aliases, bestie. That's the part everyone forgets and then nothing works ๐Ÿ˜ญ


โญ "listmaster_email"

Local part of listmaster email address.

Format: / "\S+" /

Default: "listmaster"

Context: domain (robot.conf), site (sympa.conf)

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.

Same deal as above. Aliases. Always aliases. ๐Ÿซถ


๐Ÿฆ‹ "custom_robot_parameter"

Custom robot parameter.

Format: Multiple occurrences allowed.

  • Format: /".+"/
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

This one's your lil' DIY slot for a custom parameter on your server โœจ Use it to define basically whatever you want. Just do NOT forget the semicolon between the parameter name and the parameter value, bestie, that semicolon is load-bearing.

And the payoff? You can grab that custom parameter value inside web templates with the variable "conf.custom_robot_parameter.<param_name>" ๐ŸŒธ

Example:

custom_robot_parameter param_name ; param_value

prohibited_listnames

Stops people from naming their lists certain things ๐Ÿ™…โ€โ™€๏ธ like, no, you cannot claim that name, it's taken by the vibes.

  • Format: Any.
  • Default: None.
  • Context: site (sympa.conf)
  • Available versions: 6.2.63b.1 and later.

It's a comma-separated list of names, and you can use * as a wildcard character. Want regex energy instead? Then hit up prohibited_listnames_regex instead.

Example:

prohibited_listnames www,root,*master

prohibited_listnames_regex

Same goal as above but regex-flavored โœจ blocking list names based on a pattern.

  • Format: Any.
  • Default: None.
  • Context: site (sympa.conf)
  • Available versions: 6.2.63b.1 and later.

This parameter is a regex. Heads up though: prohibited_listnames and prohibited_listnames_regex will both be applied if they're set โ€” they are not exclusive, they're besties, they work as a duo ๐Ÿ’…

Example:

prohibited_listnames_regex www|root|.*master

cache_list_config

Whether to use a binary cache of the list configuration ๐Ÿ‘‘

  • Format:
    • "binary_file" - use binary file
    • "none" - do nothing
  • Default: "none"
  • Context: site (sympa.conf)

So binary_file means Sympa processes will maintain a binary version of the list configuration, in a config.bin file on local disk. If you're running a big amount of lists (1000+), it should make the web interface startup faster โšก

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

db_list_cache

Use the database cache to search lists ๐Ÿ”

  • Format:
    • "on" - enabled
    • "off" - disabled
  • Default: "off"
  • Context: site (sympa.conf)

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

# sympa.pl --sync_list_db

purge_user_table_task

The task for expiring inactive users ๐Ÿงน

  • Format: /"\w+"/
  • Default: "monthly"
  • Context: site (sympa.conf)

This task removes rows in the user_table table which have no corresponding entries in the subscriber_table table.

purge_logs_table_task

Task for cleaning tables ๐Ÿงผ

  • Format: /"\w+"/
  • Default: "daily"
  • Context: site (sympa.conf)

This task cleans old logs from the logs_table table.

logs_expiration_period

Max age of logs in database โณ

  • Format: Number of months.
  • Default: 3 (months)
  • Context: site (sympa.conf)

Number of months that elapse before a log is expired.

stats_expiration_period

Max age of statistics information in the database ๐Ÿ“Š

  • Format: Number of months.
  • Default: 3 (months)
  • Context: site (sympa.conf)
  • Available versions: 6.2b.7 and later.

Number of months that elapse before statistics information are expired.

umask

Umask ๐ŸŽญ

  • Format: /"[0-7]+"/
  • Default: 027
  • Context: site (sympa.conf)

Default mask for file creation (see umask(2)). Important lil' note: it will be interpreted as an octal value, okay?

clean_delay_queuemod

Max age of moderated messages ๐Ÿ•ฐ๏ธ

  • Format: Number of days.
  • Default: 30 (days)
  • Context: list (config), site (sympa.conf)

Number of days messages are kept in the moderation spool (as specified by the queuemod parameter). Past this deadline, messages that have not been processed are deleted โ€” gone, poof, no takebacks ๐Ÿ’€

custom_attribute

(Paragraph) Custom user attributes. Multiple occurrences allowed ๐ŸŒˆ

custom_attribute.id

internal identifier

  • Format: /"\w+"/
  • Default: None, mandatory.
  • Context: list (config)

custom_attribute.name

label

  • Format: /".+"/
  • Default: None, mandatory.
  • Context: list (config)

custom_attribute.comment

additional comment

  • Format: /".+"/
  • Default: None.
  • Context: list (config)

custom_attribute.type

type

  • Format:
    • "string" - string
    • "text" - multi-line text
    • "integer" - number
    • "enum" - set of keywords
  • Default: "string"
  • Context: list (config)

custom_attribute.enum_values

possible attribute values (if enum is used)

  • Format: /".+"/
  • Default: None.
  • Context: list (config)

custom_attribute.optional

is the attribute optional?

  • Format:
    • "required" - required
    • "optional" - optional
  • Default: "optional"
  • Context: list (config)

custom_vars

(Paragraph) custom parameters. Multiple occurrences allowed ๐Ÿ’ซ

custom_vars.name

var name

  • Format: /"\S+"/
  • Default: None, mandatory.
  • Context: list (config)

custom_vars.value

var value

  • Format: /".+"/
  • Default: None, mandatory.
  • Context: list (config)

loop_prevention_regex

Regular expression applied to prevent loops with robots ๐Ÿค–

  • Format: /"\S*"/
  • Default: "mailer-daemon|sympa|listserv|majordomo|smartlist|mailman"
  • Context: list (config), domain (robot.conf), site (sympa.conf)

If the sender address matches this regular expression, then the message is rejected. Simple as that ๐Ÿ’…

pictures_feature

Pictures ๐Ÿ–ผ๏ธ

  • Format:
    • "on" - enabled
    • "off" - disabled
  • Default: "on"
  • Context: list (config), domain (robot.conf), site (sympa.conf)

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.

remind_task

Periodical subscription reminder task โฐ

  • Format: /"\w+"/
  • Default: None.
  • Context: list (config), site (sympa.conf)

This parameter states which model is used to create a remind task. A remind task regularly sends subscribers a message which reminds them of their list subscriptions. Very "hey bestie, you still subscribed to this" energy ๐Ÿ’Œ

latest_instantiation

(Paragraph) Latest family instantiation. Single occurrence.

latest_instantiation.email

who ran the instantiation

  • Format: /"listmaster|$email"/
  • Default: None.
  • Context: list (config)

latest_instantiation.date_epoch

date

  • Format: The time in second from Unix epoch.
  • Default: None, mandatory.
  • Context: list (config)

latest_instantiation.date

Deprecated. ๐Ÿ˜ญ

  • Context: list (config)
  • Available versions: up to 6.2.16.

creation

(Paragraph) Creation of the list. Single occurrence.

creation.email

who created the list

  • Format: /"listmaster|$email"/
  • Default: None, mandatory.
  • Context: list (config)

creation.date_epoch

date

  • Format: The time in second from Unix epoch.
  • Default: None, mandatory.
  • Context: list (config)

creation.date

Deprecated. ๐Ÿ˜ญ

  • Context: list (config)
  • Available versions: up to 6.2.16.

update

(Paragraph) Last update of config. Single occurrence.

update.email

who updated the config

  • Format: /"(listmaster|automatic|$email)"/
  • Default: None.
  • Context: list (config)

update.date_epoch

date

  • Format: The time in second from Unix epoch.
  • Default: None, mandatory.
  • Context: list (config)

update.date

Deprecated. ๐Ÿ˜ญ

  • Context: list (config)
  • Available versions: up to 6.2.16.

status

Status of the list

  • Format: Status of list.
  • Default: "open"
  • Context: list (config)

serial

Serial number of the config

  • Format: /"\d+"/
  • Default: 0
  • Context: list (config)

โœจ Web interface parameters โœจ

wwsympa_url

URL prefix of web interface ๐ŸŒ

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

This is used to construct URLs of the web interface. The protocol (either https:// or http://) is required, don't skip it bestie, it's not optional.

Example:

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

wwsympa_url_local

URL prefix of WWSympa behind proxy ๐Ÿ›ก๏ธ

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.56 and later.

static_content_url

URL for static contents ๐Ÿ“ฆ

  • Format: Any.
  • Default: "/static-sympa"
  • Context: domain (robot.conf), site (sympa.conf)

The HTTP server have to map it with the static_content_path directory.

static_content_path

Directory for static contents ๐Ÿ“

  • Format: Any.
  • Default: $STATICDIR
  • Context: domain (robot.conf), site (sympa.conf)

css_path

Directory for static style sheets (CSS) ๐ŸŽ€

  • Format: Any.
  • Default: $CSSDIR
  • Context: site (sympa.conf)

After an upgrade, static CSS files are upgraded with the newly installed css.tt2 template. So lowkey this is not a good place to store your customized CSS files โ€” it will get overwritten, no cap ๐Ÿ’€

css_url

URL for style sheets (CSS) ๐Ÿ’…

  • Format: Any.
  • Default: "/static-sympa/css"
  • Context: site (sympa.conf)

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

pictures_path

Directory for subscribers pictures ๐Ÿ“ธ

  • Format: Any.
  • Default: $PICTURESDIR
  • Context: site (sympa.conf)
  • Available versions: 6.2.25b.2 and later.

pictures_url

URL for subscribers pictures ๐Ÿ–ผ๏ธ

  • Format: Any.
  • Default: "/static-sympa/pictures"
  • Context: site (sympa.conf)
  • Available versions: 6.2.25b.2 and later.

The HTTP server have to map it with the pictures_path directory.

mhonarc

Path to MHonArc mail-to-HTML converter โœ‰๏ธ

  • Format: Any.
  • Default: "/usr/bin/mhonarc"
  • Context: domain (robot.conf), site (sympa.conf)

This one is required for HTML mail archiving, bestie. No mhonarc, no pretty HTML archives. Periodt. ๐Ÿ’Œ


๐ŸŒธ log_facility

System log facility for web interface โœจ

  • Format: Any.
  • Default: "LOCAL1"
  • Context: site (sympa.conf)

System log facility for WWSympa, archived.pl and bounced.pl. The default is literally to use the value of the "syslog" parameter. iykyk ๐Ÿซถ


๐ŸŽ€ Web interface parameters: Appearances ๐ŸŽ€

๐Ÿ’… logo_html_definition

Custom logo ๐Ÿ–ผ๏ธ

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

An HTML fragment that inserts a logo into the page of the web interface. Slap your brand on there, main character energy only. ๐Ÿ‘‘

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 ๐Ÿ’–

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2a.5 and later.

URL of the favicon image.

๐ŸŒˆ default_home

Type of main web page

  • Format: Any.
  • Default: "home"
  • Context: domain (robot.conf), site (sympa.conf)

"lists" gets you the page of list of lists. "home" gets you the home page. Pick your vibe.

โœจ archive_default_index

Default index organization of web archive

  • Format: Any.
  • Default: "thrd"
  • Context: site (sympa.conf)

thrd: Threaded index.

mail: Chronological index.

๐Ÿ“ review_page_size

Size of review page

  • Format: Any.
  • Default: 25
  • Context: domain (robot.conf), site (sympa.conf)

The default number of lines of the array displaying users in the review page. Twenty-five little rows of subscribers, slay.

๐Ÿงš viewlogs_page_size

Size of viewlogs page

  • Format: Any.
  • Default: 25
  • Context: domain (robot.conf), site (sympa.conf)

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

Custom menus ๐ŸŽ€

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

You can modify the main menu content by editing the menu.tt2 file, but bestie you can also just edit these parameters to add up to 3 buttons. Each button is defined by a title (the text inside the button), an URL and, optionally, a target. That's it, that's the whole thing. ๐Ÿ’…

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

๐Ÿ”ฅ Password validation ๐Ÿ”ฅ

It checks if the password the user submitted has sufficient strength. This feature requires an external module: Data-Password. No module, no vibe check. ๐Ÿ˜ญ

๐Ÿ’œ password_validation

Password validation

  • Format: Any.
  • Default: None.
  • Context: site (sympa.conf)

Available versions: 6.1.23 and later.

The password validation techniques to be used against user passwords that are added to mailing lists. Options come from Data::Password โ€” https://metacpan.org/pod/Data::Password#VARIABLES

Example:

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

๐ŸŒŸ Authentication with LDAP ๐ŸŒŸ

Authenticates users based on the directory on the LDAP server. This feature requires an external module: Net-LDAP. And also, if a secure connection (LDAPS) is required: IO-Socket-SSL. Two modules, one glow-up. โœจ

๐Ÿซถ ldap_force_canonical_email

Use canonical email address for LDAP authentication

  • Format: Any.
  • Default: 1
  • Context: domain (robot.conf), site (sympa.conf)

So like, when using LDAP authentication, if the identifier the user gave you was a valid email: if this parameter is set to false, then that provided email is what gets used to authenticate the user. Otherwise, the first email returned by the LDAP server is what gets used. Choose wisely. ๐Ÿฆ‹


๐Ÿ’€ SOAP HTTP interface ๐Ÿ’€

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

โญ soap_url

URL of SympaSOAP

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

The WSDL document of SympaSOAP refers to this URL in its service section. It's giving very official. ๐Ÿ‘‘

Example:

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

๐ŸŒธ soap_url_local

URL of SympaSOAP behind proxy

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2.19b.1 and later.


๐ŸŽ€ Web interface parameters: Miscellaneous ๐ŸŽ€

HTTP cookies validity domain

  • Format: Any.
  • Default: "localhost"
  • Context: domain (robot.conf), site (sympa.conf)

If it begins with a dot ("."), the cookie is available within the specified Internet domain. Otherwise, it's for the specified host. The only reason you'd ever swap out the default value is when WWSympa's authentication process is shared with an application running on another host. That's the tea. โ˜•

Example:

cookie_domain .renater.fr

HTTP cookies lifetime

  • Format: Any.
  • Default: 0
  • Context: site (sympa.conf)

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

Average interval to refresh HTTP session ID.

  • Format: Any.
  • Default: 60
  • Context: site (sympa.conf)

๐Ÿ’œ purge_session_table_task

Task for cleaning old sessions

  • Format: /"\w+"/
  • Default: "daily"
  • Context: site (sympa.conf)

This task removes old entries in the "session_table" table. Spring cleaning but make it cron. ๐Ÿงน

๐ŸŒˆ session_table_ttl

Max age of sessions

  • Format: Any.
  • Default: "2d"
  • Context: site (sympa.conf)

Session duration is controlled by the "sympa_session" cookie validity attribute. However โ€” for security reasons โ€” this delay also needs to be controlled server side. This task removes old entries in the "session_table" table. Double control, no cap. ๐Ÿ”’

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

Max age of sessions for anonymous users

  • Format: Any.
  • Default: "1h"
  • Context: site (sympa.conf)

๐Ÿ‘‘ shared_feature

Enable shared repository

  • Format:
    • "on" - enabled
    • "off" - disabled
  • Default: "off"
  • Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2.41b.2 and later.

If it's set to "on", list owners can open a shared repository. Doors open, bestie. ๐Ÿšชโœจ

๐ŸŽ€ shared_doc

(Paragraph) Shared documents

Single occurrence

This paragraph defines read and edit access to the shared document repository.

๐Ÿ’… shared_doc.d_read

Who can view

  • Format: Name of "d_read" scenario:
    • "owner" - restricted to list owners
    • "private" - restricted to subscribers
    • "private-https" - restricted to subscribers authenticated with user cert
    • "public" - public documents
  • Default: "private"
  • Context: list (config), domain (robot.conf), site (sympa.conf)

๐ŸŒธ shared_doc.d_edit

Who can edit

  • Format: Name of "d_edit" scenario:
    • "editor" - moderated for subscribers
    • "owner" - restricted to list owners
    • "private" - restricted to subscribers
    • "private-https" - restricted to subscribers authenticated with user cert
    • "public" - public documents
  • Default: "owner"
  • Context: list (config), domain (robot.conf), site (sympa.conf)

๐Ÿ“ shared_doc.quota

quota

  • Format: Number of Kbytes.
  • Default: None.
  • Context: list (config), domain (robot.conf), site (sympa.conf)

โœจ use_html_editor

Use HTML editor

  • Format:
    • "off" - disabled
    • "on" - enabled
  • Default: "off"
  • Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2a.0 and later.

If it's set to "on", users will be able to post messages in HTML using a javascript WYSIWYG editor. Fancy. ๐Ÿ’…

Example:

use_html_editor on

๐Ÿฆ‹ html_editor_url

URL of HTML editor

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2a.34 and later.

URL path to the javascript file making the WYSIWYG HTML editor available. It's a relative path under <static_content_url> or an absolute path.

The 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

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)

Available versions: 6.2a.0 and later.

A 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("_")});

๐Ÿ”ฅ max_wrong_password

Count limit of wrong password submission

  • Format: Any.
  • Default: 19
  • Context: domain (robot.conf), site (sympa.conf)

If this limit gets reached, the account is locked until the user renews their password. The default value was chosen specifically to block bots trying to log in using a brute force strategy. A real user should never reach this value โ€” they'll probably use the renew password service long before they perform that many tries. Bots stay losing. ๐Ÿ’€

๐Ÿงš password_case

Password case

  • Format: Any.
  • Default: "insensitive"
  • Context: site (sympa.conf)

"insensitive" or "sensitive".

If it's 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. Do not touch, bestie, I'm so serious. ๐Ÿ˜ญ

๐Ÿ‘‘ password_hash

Password hashing algorithm

  • Format: Any.
  • Default: "md5"
  • Context: site (sympa.conf)

Available versions: 6.2.25b.3 and later.

"md5" or "bcrypt".

If you set it to "md5", Sympa hashes passwords with MD5. Flip it to "bcrypt" and, surprise, bcrypt hashes are what you get. Bestie, hear me: this is only about the passwords chillin' in the Sympa database. The ones in LDAP? Not our business, not touching those. ๐Ÿ’…

password_hash_update

Update password hashing algorithm when users log in โ€” like, a glow-up that happens automatically the moment they walk in โœจ

  • Format: Any.
  • Default: 1
  • Context: site (sympa.conf)
  • Available versions: 6.2.25b.3 and later.

So here's the plot: the second a login goes through successfully, Sympa re-encrypts that user's password using whatever algorithm password_hash is pointing at. That's how you migrate to a new hash algorithm gracefully โ€” no dramatic breakup with the old one, just a quiet transition. Set it to 0 and nope, existing password hashes stay exactly as they are, no updating. But new passwords and reset passwords? They always follow password_hash, every single time, no exceptions. ๐Ÿซถ

bcrypt_cost

Bcrypt hash cost โ€” the effort dial ๐ŸŽš๏ธ

  • Format: Any.
  • Default: 12
  • Context: site (sympa.conf)
  • Available versions: 6.2.25b.3 and later.

When password_hash is set to "bcrypt", this is the cost parameter handed to the bcrypt hash function. The default of 12 is expected to take roughly 250ms to compute a password hash on a 3.2GHz CPU. And again โ€” this only concerns passwords stored in the Sympa database, not the ones in LDAP.

You can change it whenever, but any new cost setting only applies to new passwords. Old hashes stay at their old cost, iykyk. ๐Ÿ’–

one_time_ticket_lifetime

Age of one time ticket โ€” how long before it ghosts โณ

  • Format: Any.
  • Default: "2d"
  • Context: site (sympa.conf)

Duration before the one time tickets are expired. That's it, that's the whole vibe.

one_time_ticket_lockout

Restrict access to one time ticket โ€” who gets to touch it ๐Ÿ”’

  • Format: Any.
  • Default: "one_time"
  • Context: domain (robot.conf), site (sympa.conf)

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

purge_one_time_ticket_table_task

Task for expiring old one time tickets โ€” the little janitor ๐Ÿงน

  • Format: /"\w+"/
  • Default: "daily"
  • Context: site (sympa.conf)

one_time_ticket_table_ttl

Expiration period of one time ticket โ€” the shelf life โฐ

  • Format: Any.
  • Default: "10d"
  • Context: site (sympa.conf)

pictures_max_size

The maximum size of uploaded picture โ€” the ceiling for your selfies ๐Ÿ“ธ

  • Format: Number of bytes.
  • Default: 102400 (bytes)
  • Context: domain (robot.conf), site (sympa.conf)

spam_protection

Protect web interface against spam harvesters โ€” hide your addy from the bots ๐Ÿ›ก๏ธ

  • Format:
    • "at" - replace @ characters
    • "javascript" - use JavaScript
    • "none" - do nothing
  • Default: "javascript"
  • Context: list (config), domain (robot.conf), site (sympa.conf)

Okay so the lore: Sympa web sites gotta be protected from spambots that literally scrape email addresses off public web sites. Sympa ships several methods, and you pick your fighter with the spam_protection and web_archive_spam_protection parameters. Possible values are:

javascript:

the address is hidden using a javascript. A user who enables javascript can see a nice mailto address where others have nothing. cute AND effective ๐Ÿ’…

at:

the @ char is replaced by the string " AT ". subtle. lowkey iconic.

none:

no protection against spammer. bestie. why. ๐Ÿ™ˆ

reporting_spam_script_path

Script to report spam โ€” snitch, but make it automated ๐Ÿ“ข

  • Format: Any.
  • Default: None.
  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2a.0 and later.

If it's set, then when a list moderator reports undetected spams for list moderation, this external script gets invoked and the message gets injected into the script's standard input. Simple as that.

domains_blocklist

Prevent people to subscribe to a list with addresses using these domains โ€” the banned list ๐Ÿšซ

  • Format: Any.
  • Default: None.
  • Context: site (sympa.conf)
  • Available versions: 6.2.61b.1 and later.

This parameter is a comma-separated list.

Example:

domains_blocklist example.org,spammer.com

quiet_subscription

Quiet subscriptions policy โ€” do we announce, or do we simply โœจarriveโœจ

  • Format:
    • "on" - enabled
    • "optional" - optional
    • "off" - disabled
  • Default: "optional"
  • Context: site (sympa.conf)
  • Available versions: 6.2.41b.1 and later.

Global policy for quiet subscriptions: "on" means subscriptions will never send a notice to the subscriber. "off" will enforce a notice being sent. And "optional" (the default, bestie) lets the list policy decide. ๐Ÿฆ‹

show_report_abuse

Add a "Report abuse" link in the side menu of the lists โ€” a little callout button ๐Ÿ“ฎ

  • Format:
    • "on" - enabled
    • "off" - disabled
  • Default: "off"
  • Context: site (sympa.conf)
  • Available versions: 6.2.37b.3 and later.

The link is a mailto link, and if you wanna change that, you do it by overriding web_tt2/report_abuse.tt2. Go off. ๐ŸŽ€

allow_account_deletion

EXPERIMENTAL! Allow users to delete their account. If enabled, shows a "delete my account" form in user's preferences page. ๐Ÿซฃ

  • Format:
    • "on" - enabled
    • "off" - disabled
  • Default: "off"
  • Context: site (sympa.conf)
  • Available versions: 6.2.41b.1 and later.
โš ๏ธ Bestie, note the EXPERIMENTAL! โ€” this one's still in the lab.

Account deletion unsubscribes the users from his/her lists and removes him/her from lists ownership. It is only available to users using internal authentication (i.e. no LDAP, no SSO...). See https://github.com/sympa-community/sympa/issues/300 for details.


Renamed parameters ๐Ÿ’ซ

These parameters were renamed. Though older names are still available, their use is no longer recommended. So likeโ€ฆ they're still in the group chat, but nobody's @-ing them anymore. ๐Ÿฅฒ

arc_parameters.arc_private_key_path

See arc_parameters.private_key_path.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.57b.1 to 6.2.70.

arc_parameters.arc_selector

See arc_parameters.selector.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.57b.1 to 6.2.70.

arc_parameters.arc_signer_domain

See arc_parameters.signer_domain.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.57b.1 to 6.2.70.

arc_private_key_path

See arc_parameters.private_key_path.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.37b.1 to 6.2.56.

arc_selector

See arc_parameters.selector.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.37b.1 to 6.2.56.

arc_signer_domain

See arc_parameters.signer_domain.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: 6.2.37b.1 to 6.2.56.

archive_mail_access

See archive.mail_access.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

archive_web_access

See archive.web_access.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

bounce_halt_rate

See bounce.halt_rate.

  • Context: site (sympa.conf)
  • Available versions: up to 6.2.56.

bounce_warn_rate

See bounce.warn_rate.

  • Context: site (sympa.conf)
  • Available versions: up to 6.2.56.

custom-header

See custom_header.

  • Context: Unknown.

custom-subject

See custom_subject.

  • Context: Unknown.

d_edit

See shared_doc.d_edit.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

d_read

See shared_doc.d_read.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

default_archive_quota

See archive.quota.

  • Context: site (sympa.conf)
  • Available versions: up to 6.2.56.

default_bounce_level1_rate

See bouncers_level1.rate.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

default_bounce_level2_rate

See bouncers_level2.rate.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

default_list_priority

See priority.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

default_max_list_members

See max_list_members.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

default_remind_task

See remind_task.

  • Context: site (sympa.conf)
  • Available versions: up to 6.2.56.

default_shared_quota

See shared_doc.quota.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

default_sql_fetch_timeout

See sql_fetch_timeout.

  • Context: site (sympa.conf)
  • Available versions: 6.2a.0 to 6.2.56.

default_ttl

See ttl.

  • Context: site (sympa.conf)
  • Available versions: up to 6.2.56.

dkim_private_key_path

See dkim_parameters.private_key_path.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

dkim_selector

See dkim_parameters.selector.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

dkim_signer_domain

See dkim_parameters.signer_domain.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

dmarc_protection_domain_regex

See dmarc_protection.domain_regex.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

dmarc_protection_mode

See dmarc_protection.mode.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

dmarc_protection_other_email

See dmarc_protection.other_email.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

dmarc_protection_phrase

See dmarc_protection.phrase.

  • Context: domain (robot.conf), site (sympa.conf)
  • Available versions: up to 6.2.56.

domains_blacklist

See domains_blocklist.

  • Context: site (sympa.conf)
  • Available versions: 6.2.41b.1 to 6.2.60.

email_gecos

See gecos.

  • Context: site (sympa.conf)
  • Available versions: 6.2a.5 to 6.2a.33.

forced_reply-to

See forced_reply_to.

  • Context: Unknown.

forced_replyto

  • See forced_reply_to.
    • Context: Unknown.
  • key_password โ€” See key_passwd, bestie, it's the same thing wearing a different name ๐Ÿ’…
    • Context: site (sympa.conf)
  • log_socket_type โ€” See syslog_socket.type.
    • Context: site (sympa.conf)
    • Available versions: up to 6.2.72.
  • max-size โ€” See max_size.
    • Context: Unknown.
  • merge_feature โ€” See personalization_feature.
    • Context: Unknown.
    • Available versions: 6.0b.2 to 6.2.59b.1.
  • remind_return_path โ€” See verp_remind.
    • Context: list (config), site (sympa.conf)
    • Available versions: 2.5 to 6.2.70.
  • reply-to โ€” See reply_to.
    • Context: Unknown.
  • replyto โ€” See reply_to.
    • Context: Unknown.
  • subscription โ€” See subscribe.
    • Context: Unknown.
  • tracking_default_retention_period โ€” See tracking.retention_period.
    • Context: site (sympa.conf)
    • Available versions: 6.2a.3 to 6.2.56.
  • tracking_delivery_status_notification โ€” See tracking.delivery_status_notification.
    • Context: site (sympa.conf)
    • Available versions: 6.2a.0 to 6.2.56.
  • tracking_message_delivery_notification โ€” See tracking_message_disposition_notification.
    • Context: site (sympa.conf)
    • Available versions: 6.2a.0 to 6.2a.40.
  • tracking_message_disposition_notification โ€” See tracking.message_disposition_notification.
    • Context: site (sympa.conf)
    • Available versions: 6.2a.41 to 6.2.56.
  • unsubscription โ€” See unsubscribe.
    • Context: Unknown.
  • use_blacklist โ€” See use_blocklist. (the glow-up name fr fr)
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 5.3a.4 to 6.2.60.
  • welcome_return_path โ€” See verp_welcome.
    • Context: list (config), site (sympa.conf)
    • Available versions: 2.5 to 6.2.70.

๐Ÿ’€ Deprecated parameters

Okay so these ones are deprecated. Like, dead dead. They may not be used anymore โ€” no cap, do not try it, the config parser will simply not have a good time.

  • account โ€” Deprecated.
    • Context: list (config)
  • antispam_feature โ€” Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 6.0a.1 to 6.2.70.
  • antispam_tag_header_ham_regexp โ€” Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 6.0a.1 to 6.1a.1.
  • antispam_tag_header_name โ€” Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 6.0a.1 to 6.1a.1.
  • antispam_tag_header_spam_regexp โ€” Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 6.0a.1 to 6.1a.1.
  • archived_pidfile โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.1.17.
  • automatic_list_prefix โ€” Deprecated.
    • Context: site (sympa.conf)
  • bounced_pidfile โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.1.17.
  • clean_delay_queueother โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 5.4a.9 to 5.4.7.
  • color_0, ..., color_15 โ€” See description on web interface. Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 5.1b to 6.2.70.
  • cookie โ€” Deprecated.
    • Context: list (config), site (sympa.conf)
    • Available versions: up to 6.2.60.
  • dark_color, light_color, text_color, bg_color, error_color, selected_color, shaded_color โ€” See description on web interface. Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 3.3a to 6.2.70.
  • default_distribution_ttl โ€” Deprecated.
    • Context: site (sympa.conf)
  • distribution_mode โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 5.0a.1 to 6.2a.40.
  • edit_list โ€” Deprecated.
    • Context: site (sympa.conf)
  • editor โ€” Deprecated.
    • Context: list (config)
    • Available versions: up to 6.2.32.
  • expire_task โ€” Deprecated.
    • Context: list (config)
  • filesystem_encoding โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 5.3a.7 to 6.2.52.
  • forced_reply_to โ€” Deprecated.
    • Context: list (config)
  • host โ€” Deprecated.
    • Context: list (config), domain (robot.conf), site (sympa.conf)
    • Available versions: up to 6.2.32.
  • html_editor_file โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 6.0a.0 to 6.2a.33.
  • htmlarea_url โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.2.35b.1.
  • http_host โ€” Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: up to 6.2.54.
  • include_list โ€” Deprecated.
    • Context: list (config)
    • Available versions: 2.2.6 to 6.2.15.
  • ldap_export_connection_timeout โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 3.3b.3 to 4.1?.
  • ldap_export_dnmanager โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 3.3b.3 to 4.1?.
  • ldap_export_host โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 3.3b.3 to 4.1?.
  • ldap_export_name โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 3.3b.3 to 4.1?.
  • ldap_export_password โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 3.3b.3 to 4.1?.
  • ldap_export_suffix โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 3.3b.3 to 4.1?.
  • localedir โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 4.2b.2 to 6.2a.32.
  • lock_method โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 5.3b.3 to 6.2a.33.
  • log_condition โ€” Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 6.2a.29 to 6.2.41b.1.
  • log_module โ€” Deprecated.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: 6.2a.29 to 6.2.41b.1.
  • msgcat โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 4.2b.1.
  • openssl โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.2a.40.
  • owner โ€” Deprecated.
    • Context: list (config)
    • Available versions: up to 6.2.32.
  • pidfile โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.1.17.
  • pidfile_bulk โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.1.17.
  • pidfile_creation โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.1.17.
  • pidfile_distribute โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.1.17.
  • queuedistribute โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 5.0a.1 to 6.2a.40.
  • queueexpire โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 5.1.2.
  • reply_to โ€” Deprecated.
    • Context: list (config)
  • sort โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: 1.4.0 and later.
  • task_manager_pidfile โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.1.17.
  • tracking (domain and site) โ€” See tracking.tracking.
    • Context: domain (robot.conf), site (sympa.conf)
    • Available versions: up to 6.2.56.
  • tri โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 1.3.4-1.
  • trusted_ca_options โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 3.3.5.
  • use_fast_cgi โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 6.2.22.
  • user_data_source โ€” Deprecated.
    • Context: list (config)
  • web_archive โ€” Deprecated.
    • Context: list (config), domain (robot.conf), site (sympa.conf)
    • Available versions: up to 6.2a.43.
  • web_recode_to โ€” Deprecated.
    • Context: site (sympa.conf)
    • Available versions: up to 5.2.

๐Ÿ“ FILES

Here's where everything actually lives on disk, bestie ๐Ÿ—‚๏ธ

  • /etc/sympa/sympa.conf โ€” Sympa main configuration file.
  • $SYSCONFDIR/<mail domain name>/robot.conf โ€” Configuration specific to each mail domain.
  • $EXPLDIR/<list name>/config or $EXPLDIR/<mail domain name>/<list name>/config โ€” List main configuration file.

๐Ÿ‘€ SEE ALSO

Go read the Sympa Administration Manual โ€” https://www.sympa.community/manual/. It's giving main character energy and it knows everything ๐Ÿซถ

Also, go say hi to the rest of the manpage fam:


Okay that's a wrap on SYMPA_CONFIG(5), my love ๐ŸŒˆ this was version 6.2.80, dated 2026-10-19, and yes, that footer at the bottom really does just say SYMPA_CONFIG(5) one more time for dramatic effect ๐Ÿ’… you studied the whole thing, you absolutely ate, periodt ๐Ÿ‘‘โœจ

๐Ÿ“ฆ where this page comes from
  • fedora 43: sympa 6.2.80-2.fc43 ยท GPL-2.0-or-later AND (OFL-1.1-RFN AND MIT) AND OFL-1.1-RFN AND MIT and (MIT OR GPL-2.0-only)
  • fedora 44: sympa 6.2.80-2.fc44 ยท GPL-2.0-or-later AND (OFL-1.1-RFN AND MIT) AND OFL-1.1-RFN AND MIT and (MIT OR GPL-2.0-only)
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms