mailman

Дистрибутив CentOS 7

Удалить письма из архива

Сначала чистим почтовый архив, потом регенерируем веб-архив, стирая старый

mutt -f  /var/lib/mailman/archives/private/mylist.mbox/mylist.mbox
/usr/lib/mailman/bin/arch --wipe mylist

Управление списком рассылки из командной строки

Программа управления списками рассылки 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, но при этом можно нарушить внутреннюю непротиворечивость конфигурации.

Примеры файлов для config_list

Отключение ежемесячного напоминания о паролях

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