Intro

Soy nuevo en mailman. Siempre que había tenido que crear una lista de correo había optado por el socorrido virtual_alias_maps de postfix. Sin embargo, ese sistema está reñido con el snf y a veces los correos se quedaban sin entregar. Al final opté por instalar un sistema de listas de correo y como no fui capaz de hacer funcionar mailman3 me decanté finalmente por mailman2, que tiene una interfaz gráfica horrenda, pero que cumple extraordinariamente con su cometido.

En este post incluiré algunos comandos útiles para el mailman que espero me ahorren algún tiempo de búsquedas en google.

Localización de los archivos de mailman

Los archivos de mailman están repartidos en dos directorios principalmente:

  • /etc/mailman
  • /usr/lib/mailman

Emplear una instalación de mailman para múltiples dominios

Para emplear múltiples dominios hemos de realizar los siguientes ajustes al archivo mm_cfg.py:

add_virtualhost('mi.primer.dominio')
add_virtualhost('mi.segundo.dominio')

MTA = 'Postfix'
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['mi.primer.dominio','mi.segundo.dominio']
DEFAULT_URL_PATTERN = 'https://%s/mailman/

Los valores ‘mi.primer.dominio’ y ‘mi.segundo.dominio’ deben de coincidir con la URL (sin http:// o https://) del sitio al que accederemos para gestionar las listas.

De este modo el sistema gestionará automáticamente los aliases creados para la gestión de las listas.

Cambiar la URL y dominio de correo del sitio

Lo habitual cuando instalas mailman, al menos en mi caso, es jugar un poco creando listas. Las listas se crean para el dominio por defecto salvo que ya las hayamos configurado desde las url que se incluyen en las líneas add_virtualhost del archivo de configuración mm_cfg.py

Al final, los mensajes en los correos, las URLs de las páginas y los correos dirigen al virtualhost por defecto. Si queremos evitarnos quebraderos de cabeza emplearemos para este cambio el comando de mailman:

bin/whitlist -l -r fir_url nombre-lista -u web_page_url -v

Podemos encontrar los detalles en el siguiente enlace:

4.29. Where can I change a list or the default URL used for the web interface?

Cambiar una dirección de correo por otra

A veces un usuario decide cambiar su dirección de correo. Para actualizar mailman tenemos dos opciones:

  • Añadimos la nueva dirección en todas las listas en las que está suscrito y eliminamos la antigua (habría que cambiarla también en los administradores de listas y demás)
  • Usamos el comando clone_member de la siguiente forma:
 bin/clone_member --admin --remove old_addr new_addr

De esste modo cambiamos la dirección sin cambiar ningún otro ajuste que tenga.

Ver las listas de correo a las que está suscrito un usuario

Empleamos el siguiente comando en el directorio de mailman:

bin/find_member nombre_de_usuario

Obtener los suscriptores a una lista

Existen dos opciones, una empleando el navegador web, para lo cual dirigiremos el navegador a la siguiente dirección:

http://www.example.com/mailman/roster/nombre_de_la_lista

La otra mediante el siguiente comando en la consola en el directorio mailman:

./bin/list_members nombre_de_la_lista

Sumario de comandos de mailman (en inglés). Fuente: Summary of the mailman/bin/ commands

These commands are essential for building mailing lists and for backing up list information (users, user options, list configuration). The commands also greatly extend the functionality of Mailman.

For more information about a specific command, give the command with the ‘–help’ option.

add_members: add regular or digested users to a list.

arch: rebuild a mailing list’s archives.

change_pw: change a list’s password.

check_db: check a mailing list database for corruption.

check_perms: check the permissions on the Mailman installation.

cleanarch: clean up an .mbox archive file before importing with bin/arch.

clone_member: add a list member with identical settings as an existing list member (including password).

config_list: examine or change list configuration from the command line.

convert.py: a withlist script to convert a list’s interpolation strings from %-strings to $-strings.

discard: discard held messages.

dumpdb: dump the contents of a Mailman .db file.

find_member: find all lists that a specified user is on.

fix_url.py: a withlist script to reset a list’s web_page_url and host_name attributes.

genaliases: regenerate Mailman specific aliases from scratch.

inject: inject a message from a file into a Mailman queue.

list_admins: list all the owners of a mailing list.

list_lists: list all the Mailman mailing lists.

list_members: list members of a mailing list.

list_owners: list the owners of a mailing list, or all mailing lists.

mailmanctl: primary start-up and shutdown script for Mailman’s qrunner daemon.

mmsitepass: set the site password, good for admin-ing any list.

newlist: create a new mailing list.

qrunner: run one or more qrunners, once or repeatedly – usually only used by mailmanctl.

rb-archfix: reduce disk space usage for Pipermail archives.

remove_members: remove specified members from a list.

reset_pw.py: a withlist script to reset the passwords for members of a mailing list.

rmlist: remove an old mailing list – does not remove the archives unless you specify -a.

show_qfiles: show the contents of one or more Mailman queue files.

sync_members: synchronizes mailing list membership with a flat text file.

transcheck: check a given Mailman translation (i18n).

unshunt: move messages from the shunt queue to the original queue.

update: upgrade from previous version of Mailman to current version.

version: print out the version of Mailman you are using.

withlist: advanced interactions with mailing list objects.

Other notable files:

msgfmt.py: generate binary message catalog from textual translation description – a simple reimplementation of GNU msgfmt used during Mailman’s installation.

paths.py: module used by many Mailman scripts to tell it where its files are stored.

pygettext.py: module used to generate the master message strings catalog for internationalization.

mailman/Mailman/Defaults.py: The default values for configuring Mailing lists. Also controls how Mailman interacts with your MTA (sendmail, postfix, qmail…), and how it interacts with your web server. Note: NEVER change this file – copy any section you want to change into the file below and make the changes there.

mailman/Mailman/mm_cfg.py: Your site’s customized settings. Used to set the defaults for any new mailing lists. It is highly recommended that you read through Defaults.py before making any changes, but that you make any desired changes in this file.