--- /dev/null
+#!/bin/bash
+set -e
+## Usage:
+## ./mailman-check
+## Checks all the mailman lists for bad configuration, and prints further details if it finds one.
+
+if ! test -d /var/lib/mailman; then
+ # nothing to do
+ exit 0
+fi
+
+cd /var/lib/mailman/lists
+for list in *; do
+ /usr/sbin/config_list -i /dev/stdin "$list" <<EOF
+if not ((mlist.dmarc_moderation_action in (1, 2) and mlist.dmarc_quarantine_moderation_action == 1) or mlist.from_is_list in (1, 2)):
+ print "List",mlist.real_name,"by",(', '.join(mlist.owner)),"is not configured to deal with DMARC."
+if mlist.reply_goes_to_list != 0 and not mlist.first_strip_reply_to:
+ print "List",mlist.real_name,"by",(', '.join(mlist.owner)),"provides an inconsistent Reply-To treatment."
+EOF
+done
groups: opendkim
append: yes
notify: postfix
-# cronjob
+# cronjobs
- name: delete old local-mail cronjob
file: path=/etc/cron.daily/local-mail state=absent
- name: install check-for-local-mail cronjob
dest: /etc/cron.daily/check-for-local-mail
src: files/check-for-local-mail
mode: u=rwx,g=rx,o=rx
+- name: install mailman-check cronjob
+ when: postfix.mailman is defined and postfix.mailman
+ copy:
+ dest: /etc/cron.daily/mailman-check
+ src: files/mailman-check
+ mode: u=rwx,g=rx,o=rx
+- name: remove mailman-check cronjob
+ when: not (postfix.mailman is defined and postfix.mailman)
+ file:
+ path: /etc/cron.daily/mailman-check
+ state: absent