Программа управления списками рассылки mailman написана на Python 2 и имеет хорошо задокументированное API.
Для тех, кто не хочет программировать на python, существует несколько готовых скриптов для управления списками рассылки. В CentOS 7 они находятся в каталоге /usr/lib/mailman/bin/.
Создание списка newlist [listname [listadmin-addr [admin-password]]]
Если часть параметров пропущена, то она будет запрошена в интерактивном режиме.
Добавление участников рассылки add_members -r infile listname
Где файл infile состоит из строк вида:
jdoe@example.com
<jdoe@example.com>
John Doe <jdoe@example.com>
"John D. Doe" <jdoe@example.com>
jdoe@example.com (John Doe)
Просмотр списка участников list_members listname
. С полными именами (не дружит с Unicode) list_members -f listname
Смена административного пароля на списки рассылки change_pw
. Опция -a позволяет установить один пароль на все списки, -l list1 -l list2... позволяет перечислить списки. Пароль генерируется автоматически, но его можно задать явно опцией -p pass.
Удаление списка рассылки (БЕЗ ЗАПРОСА ПОДТВЕРЖДЕНИЯ) rmlist -a listname
. Опция -a указывает, что надо удалить архив сообщений.
Сохранение в файл основных параметров списка (без информации об участниках) config_list -o listname.conf listname
. Формат вывода - программа на python, которая может быть подана на вход config_list -i listname.conf listname
Просмотр всех параметров списка dumpdb /var/lib/mailman/lists/<listname>/config.pck
Изменение параметров списка (В том числе массовое добавление полных имён участников рассылки) config_list -i infile listname
. В файле infile должна находиться программа на python, в которой присваиваются значения переменным, имена которых совпадают с именами атрибутов списка рассылки. Имена переменных не совпадающих с атрибутами игнорируются. Можно присваивать значения непосредственно атрибутам объекта списка рассылки mlist, но при этом можно нарушить внутреннюю непротиворечивость конфигурации.
Отключение ежемесячного напоминания о паролях
echo send_reminders=0 > remunders0.conf
config_list -i remunders0.conf sample_list
Для добавления участникам полных имен надо найти в выдаче dumpdb /var/lib/mailman/lists/sample_list/config.pck
подходящие атрибуты:
'members': { 'student1@example.com': 0,
'student2@example.com': 0},
...
'usernames': { 'student1@example.com': u'\u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u0442\u0443\u0434\u0435\u043d\u0442',
'student2@example.com': u''},
Видно, что полные имена хранятся в формате unicode. Так, полное имя student1@example.com - "Первый студент". Можно написать присваивание какому-либо элементу массива usernames и сохранить его в файле infile:
mlist.usernames['student2@example.com'] = u'Second Student'
Команда config_list -i infile sample_list
изменит полное имя для участника student2@example.com