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