debops.mailman default variables

Packages and installation

mailman__packages

List of APT packages to install.

mailman__packages: [ 'mailman', 'gettext', 'patch' ]

Language and localization

mailman__default_languages

List of default language packs enabled in Mailman, specified as two letter names. First element is used as the site language.

mailman__default_languages: [ 'en' ]
mailman__languages

List of additional language packs to enable in Mailman, specified as two letter names.

mailman__languages: []
mailman__site_language

Default language used for new mailing lists and in the web interface.

mailman__site_language: '{{ mailman__default_languages[0] }}'

Mailing list domains

mailman__fqdn

A fully qualified domain name of the host that manages the mailing lists.

mailman__fqdn: '{{ ansible_fqdn }}'
mailman__domain

A DNS domain name of the host that manages the default mailing lists.

mailman__domain: '{{ ansible_domain if ansible_domain else ansible_hostname }}'
mailman__site_domain

The primary domain used by the Mailing List Manager to serve its Web interface and host the default mailing lists.

mailman__site_domain: '{{ ("lists." + mailman__domain) }}'
mailman__virtual_domains

List of additional virtual domains which are used by Mailman.

mailman__virtual_domains: []
mailman__site_admin

Site administrator e-mail address.

mailman__site_admin: 'listmaster@{{ mailman__domain }}'
mailman__site_postmaster

Postmaster address, required by 'postfix-to-mailman.py' script.

mailman__site_postmaster: 'postmaster@{{ mailman__domain }}'
mailman__site_list

Default site mailing list, usually mailman.

mailman__site_list: 'mailman'

Mail messages and SMTP configuration

mailman__max_message_size

Maximum message size enforced by Mailman by default, in kilobytes. Can be changed for each list independently in the web interface.

mailman__max_message_size: '100'
mailman__smtp_max_recipients

Maximum number of recipients in each SMTP session.

mailman__smtp_max_recipients: '500'

Web interface and archives

mailman__allow

List of hosts or CIDR networks to allow access to Mailman web interface. If the list is empty, allow access from all hosts/networks.

mailman__allow: []
mailman__public_mbox

Should Mailman offer .mbox file in public list archives?

mailman__public_mbox: True

Password configuration

mailman__site_password_length

Length of generated passwords for site administrator and list creator access.

mailman__site_password_length: '40'
mailman__admin_password_length

Length of generated passwords for mailing list owner/admin access.

mailman__admin_password_length: '30'
mailman__member_password_length

Length of generated passwords for list members.

mailman__member_password_length: '20'
mailman__user_friendly_passwords

Should Mailman generate user-friendly passwords?

mailman__user_friendly_passwords: False

Spam and backscatter prevention

mailman__default_forward_auto_discards

Should auto-discarded messages from non-members be automatically sent to list moderators/admins? Setting this to False will reduce spammy messages to moderators.

mailman__default_forward_auto_discards: False
mailman__response_include_level

How much of the original message should be included in auto-responses?

mailman__response_include_level: '0'
mailman__default_generic_nomember_action

What should be done with mail messages from non-members by default? 3 = Discard

mailman__default_generic_nonmember_action: '3'
mailman__referers

List of domains allowed as referers.

mailman__referers: '{{ ([ mailman__site_domain ] + mailman__virtual_domains +
                        [ mailman__fqdn, "*." + mailman__domain, mailman__domain ]) }}'

Other options

mailman__custom_options

Additional Mailman options in a text block format. You can find more options in /usr/lib/mailman/Mailman/Defaults.py

mailman__custom_options: ''
mailman__lists

List of mailing lists to create or remove. See mailman__lists for more details.

mailman__lists: []

Mailman source code patches

mailman__patch

Enable or disable patching of the Mailman source code.

mailman__patch: True
mailman__patch_list

List of patches applied to Mailman source code.

mailman__patch_list:

  # Add direct link to moderation page
  - 'add-moderator-link'

  # Remove automatic capitalization of list names
  - 'remove-upper-list-name'

  # Ignore commands from non-members (reduces backscatter, but blocks mail
  # registration)
  - 'ignore-commands-from-nonmembers'

  # Remove extra aliases that are not needed (reduces backscatter)
  - 'prune-alias-list'

Configuration for other Ansible roles

mailman__apt_preferences__dependent_list

Configuration of custom debops.apt_preferences role.

mailman__apt_preferences__dependent_list:

  - package: 'mailman'
    backports: [ 'wheezy' ]
    reason: 'Version parity with Debian Jessie'
    role: 'debops.mailman'
mailman__unattended_upgrades__dependent_blacklist

Configuration of the debops.unattended_upgrades role.

mailman__unattended_upgrades__dependent_blacklist:

  # Don't upgrade ``mailman`` package automatically if patches are enabled.
  - name: 'mailman'
    state: '{{ "present" if mailman__patch | bool else "absent" }}'
mailman__fcgiwrap__instance

Configure fcgiwrap instance for Mailman using debops.fcgiwrap role.

mailman__fcgiwrap__instance:
  name: 'mailman'
  user: 'list'
  group: 'list'
mailman__postfix__dependent_lists

Configuration of Postfix list variables in debops.postfix role.

mailman__postfix__dependent_lists:
  alias_maps:
    - capability: 'local'
      list: [ 'hash:/var/lib/mailman/data/aliases' ]
  relay_domains:
    - no_capability: 'local'
      list: '{{ [ mailman__site_domain ] + mailman__virtual_domains }}'
  relay_recipient_maps:
    - no_capability: 'local'
      list: [ 'hash:/var/lib/mailman/data/virtual-mailman' ]
  transport_maps:
    - no_capability: 'local'
      list: [ 'hash:/etc/mailman/postfix_transport' ]
  mydestination:
    - capability: 'local'
      list: [ '{{ mailman__site_domain }}' ]
  virtual_alias_domains:
    - capability: 'local'
      list: '{{ mailman__virtual_domains }}'
  virtual_alias_maps:
    - capability: 'local'
      list: [ 'hash:/var/lib/mailman/data/virtual-mailman' ]
mailman__postfix__dependent_maincf

Configuration of Postfix main.cf in debops.postfix role.

mailman__postfix__dependent_maincf:
  - param: 'mailman_destination_recipient_limit'
    value: '1'
    no_capability: 'local'
mailman__postfix__dependent_mastercf

Configuration of Postfix master.cf in debops.postfix role.

mailman__postfix__dependent_mastercf:
  - service: 'mailman'
    type: 'unix'
    unpriv: 'n'
    chroot: 'n'
    command: 'pipe'
    options: |
      flags=FR user=list
      argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
    no_capability: 'local'
mailman__nginx_server_options

Set custom options for Mailman nginx server

mailman__nginx_server_options: |
  referer_hash_bucket_size 128;
mailman__nginx__servers

Configuration of nginx server to access Mailman web interface, using debops.nginx Ansible role.

mailman__nginx__servers:
  - by_role: 'debops.mailman'
    enabled: True
    name: '{{ [ mailman__site_domain ] + mailman__virtual_domains }}'
    filename: 'debops.mailman'
    root: '/usr/lib/cgi-bin/mailman'
    options: '{{ mailman__nginx_server_options }}'

    location:

      '~ ^/(mailman/?)?$': |
        rewrite ^ /mailman/listinfo permanent;

      '~ ^/mailman/.': |
        gzip off;
        root /usr/lib/cgi-bin/mailman;
        fastcgi_split_path_info       ^/mailman(/[^/]*)(.*)$;
        fastcgi_param SCRIPT_FILENAME  /usr/lib/cgi-bin/mailman$fastcgi_script_name;
        fastcgi_param PATH_INFO       $fastcgi_path_info;
        include       fastcgi_params;
        fastcgi_pass  unix:/run/fcgiwrap-mailman.socket;

      '/images/mailman': |
        alias /var/lib/mailman/icons;

      '/pipermail': |
        alias /var/lib/mailman/archives/public;
        autoindex on;

    location_allow:
      '~ ^/mailman/.':   '{{ mailman__allow }}'
      '/images/mailman': '{{ mailman__allow }}'
      '/pipermail':      '{{ mailman__allow }}'

    location_referers:
      '~ ^/mailman/.': '{{ mailman__referers }}'