Renomeando uma lista do Mailman

23 de março de 2009

No segundo post sobre o Mailman, vou mostrar como fiz quando precisei renomear uma lista de e-mails do Mailman.

Veja também:
Transferindo uma instalação do Mailman entre servidores
Atualização automática dos membros de uma lista do Mailman

As instruções a seguir foram encontradas no blog de Chris Lamb e funcionaram bem no Fedora 10 com mínimas alterações. Lembrando que, no Fedora, todos os comandos devem ser executados com o usuário root ou, no Ubuntu, todos com “sudo” na frente.

Primeiro, sugere-se criar variáveis com o nome das listas para facilitar a digitação e evitar erros. Confira bem os nomes definidos nestas variáveis!

OLD=old-list-name
NEW=new-list-name
set -u

Em seguida, parar o Mailman enquanto a operação é realizada:

/etc/init.d/mailman stop

Os comandos a seguir movem os arquivos da lista e geram novamente os aliases (que fazem o Postfix encaminhar os e-mails recebidos para o Mailman):

mv /var/lib/mailman/lists/${OLD} /var/lib/mailman/lists/${NEW}
mv /var/lib/mailman/archives/private/${OLD} \
  /var/lib/mailman/archives/private/${NEW}
mv /var/lib/mailman/archives/private/${OLD}.mbox \
  /var/lib/mailman/archives/private/${NEW}.mbox
mv /var/lib/mailman/archives/private/${NEW}.mbox/${OLD}.mbox \
  /var/lib/mailman/archives/private/${NEW}.mbox/${NEW}.mbox
/usr/lib/mailman/bin/arch ${NEW}

Se quiser que as mensagens para o endereço antigo da lista sejam encaminhados para a lista nova, devem ser criados alguns aliases para direcionamento.

cp /etc/aliases `mktemp aliases-backup.XXXX`
printf "\\n# '${OLD}' -> '${NEW}' mailing list rename \\n" | \
  sudo tee --append /etc/aliases
echo "${OLD}: ${NEW}" | tee --append /etc/aliases
for SUFFIX in \
  admin bounces confirm join leave owner request subscribe unsubscribe; \
  do \
    echo "${OLD}-${SUFFIX}: ${NEW}-${SUFFIX}" | tee --append /etc/aliases; \
  done

Agora, deve-se abrir a página de administração da lista pelo browser (que já deverá estar com o nome novo) e, na parte de configurações gerais, alterar o Nome Real, o Prefixo e qualquer outra informação desejada, para incluir o novo nome. Se quiser que os e-mails com o endereço antigo também sejam recebidos, nas opções de Privacidade, Filtro de Destinatários, incluir o nome antigo da lista nos aliases aceitos.

Finalmente, já é possível terminar a operação e ativar o Mailman novamente:

newaliases
/usr/lib/mailman/bin/genaliases
/etc/init.d/mailman start

Por último, não esquecer de avisar os usuários sobre a alteração! :-)

Deixe uma Resposta