Tengo algunas listas en las que no me interesa activar la moderación de emergencia y simplemente quiero sólo moderar los mails que mandan los usuarios en la lista y permitir así que algunos si puedan mandar y otros no.
He tratado de realizar esto a través de Opciones de privacidad > Filtro de Remitente > default_member_moderation a Si y los usuarios siguen pudiendo mandar mails… así que he tenido que buscar otra solución y buscando un poco he encontrado una pequeña sorpresilla, y es que puedes crear tus scripts para mailman y ejecutarlos con el comando withlist!
Nota: Ahora entiendo esto!!! se refiere a las nuevas subscripciones a la lista! gññññ estas traducciones!!!
Como no soy muy experta en python he usado un script que he encontrado en un foro y lo he adaptado un poquitín con bash! :)
El script lo guardamos en /var/lib/mailman/bin/ con el nombre mod.py y con éste contenido:
#! /usr/bin/python # mod.py from Mailman import mm_cfg import sys def mod(list): for member in list.getMembers(): if list.getMemberOption(member, mm_cfg.Moderate): print member, "is moderated" def set(list, member, value): value = not not (int(value)) if list.isMember(member): list.Lock() list.setMemberOption(member, mm_cfg.Moderate, value) print "%s's moderated flag set to %d" % (member, value) list.Save() list.Unlock() else: print member, "not a member"
Y luego en nuestro directorio favorito de scripts creamos otro script, por ejemplo moderar_usuarios_lista.sh con éste contenido:
#!/bin/bash echo "Choose list name to apply moderation changes: " read LIST_NAME echo "Choose an option (1. moderate, 0. quit moderation): " read MOD_STATUS echo ${LIST_NAME} ${MOD_STATUS} list_members ${LIST_NAME} > temp.txt while read -r line do LIST_USER=$line #echo ${LIST_USER} /var/lib/mailman/bin/withlist -r mod.set ${LIST_NAME} ${LIST_USER} ${MOD_STATUS} done < temp.txt rm temp.txt
Luego lo ejecutamos y rellenamos los parametros deseados.
Recuerdo que para ver las listas una forma de hacerlo es listar el directorio /var/lib/mailman/lists, lo he omitido en el script porque el servidor de listas que administro tiene un porrón de listas, así que previamente tienes que saber qué lista quieres modificar...
Ahora algunos parámetros interesantes a tener en cuenta:
/etc/init.d/postfix stop: vale, no hace falta explicación xD
mailq: ver los mails en la cola de postfix
postqueue -p: similar al mailq
postsuper -d ALL: eliminar todos los mails en la cola (puede estar postfix parado)
postsuper -d ALL deferred: eliminar todos los mails pospuestos
Pingback: Mailman: definiendo los valores por defecto de una lista de correo | Blackhold