Transferindo uma instalação do Mailman entre servidores

13 de março de 2009

Nos últimos meses, precisei fazer várias operações sobre uma instalação do Mailman que eu gerencio, e foi um aprendizado que vou compartilhar, pois penso que não devem ser operações incomuns.

Neste post, vou mostrar como transferir uma instalação do Mailman entre servidores.

Veja também:
Renomeando uma lista do Mailman
Atualização automática dos membros de uma lista do Mailman

No meu caso, eu estava transferindo uma instalação do Mailman de um antigo Fedora 7 para um novo servidor com Fedora 10 e o Mailman 2.1.11.

O primeiro passo, logicamente, é instalar o Mailman no novo servidor se ainda não estiver (no caso do Fedora, isto é feito com o comando “yum install mailman” no Terminal com usuário root, para Ubuntu, “sudo apt-get install mailman”).

Antes de continuar, algumas observações:

Obs. 1: Todos os comandos indicados a seguir precisam ser executados com usuário root, no Fedora basta executar “su -” e digitar a senha de root antes de começar os comandos, no Ubuntu, coloca-se “sudo” antes de cada comando.
Obs. 2: As instruções assumem que o servidor SMTP usado é o Postfix. Caso não seja, é preciso ver como fazer as configurações equivalentes no servidor SMTP utilizado.

Depois de instalado o Mailman, é necessário criar uma primeira lista de e-mails chamada”mailman”. Para isto, no terminal, executar o comando:

/usr/lib/mailman/bin/newlist mailman

No final da criação da lista, serão mostrados alguns “aliases” de e-mail que precisarão ser configurados no Postfix:

# a lista de discussão mailman
mailman:              "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"

Abra o arquivo /etc/aliases e confira se as linhas acima estão no final do arquivo, se não estiverem, elas devem ser adicionadas. Neste caso, depois de incluir as linhas no arquivo /etc/aliases e salvá-lo, executar o comando:

newaliases

No arquivo /etc/httpd/conf.d/mailman.conf, recomenda-se habilitar o direcionamento do endereço do mailman, para que um acesso à www.nomedosite.com.br/mailman seja redirecionado para a página de informações sobre as listas. Para isso, a última linha do arquivo deve ser descomentada (apagar o símbolo #) e o nome do servidor www.example.com deve ser substituído pelo nome real, por exemplo:

RedirectMatch ^/mailman[/]*$ http://www.nomedosite.com.br/mailman/listinfo

O próximo passo é copiar as listas de e-mails do servidor antigo, assim como todos os seus dados, para o servidor novo. Para isto, basta copiar o conteúdo completo do diretório /var/lib/mailman do servidor antigo para o mesmo local no servidor novo.

Também é preciso copiar os arquivos /etc/mailman/aliases e /etc/mailman/aliase.db do servidor antigo para o novo. As permissões destes arquivos devem ser alteradas para serem acessadas pelo usuário mailman. No meu caso, alterei os dois arquivos para ter o grupo mailman como dono:

chown root:mailman /etc/mailman/aliases
chown root:mailman /etc/mailman/aliases.db

Confira se estes dois arquivos estão no banco de dados de aliases do Postfix: abra o arquivo /etc/postfix/main.cf e procure as linhas que começam com alias_maps e alias_databases, acrescentando o /etc/mailman/aliases no final se não estiver, por exemplo:

alias_maps = hash:/etc/aliases,hash:/etc/mailman/aliases
alias_database = hash:/etc/aliases,hash:/etc/mailman/aliases

Para estas configurações no Postfix serem atualizadas, executar o comando newaliases novamente e reiniciar o Postfix:

newaliases
service postfix restart

Finalmente, só falta um comando, que irá criar a senha de administrador do Mailman. Lembre-se que esta será a senha para criar novas listas e administrar as existentes.

/usr/lib/mailman/bin/mmsitepass

Pronto! Abra o seu navegador no endereço do Mailman (www.nomedosite.com.br/mailman) e todas as listas que existiam no servidor antigo deverão estar no servidor novo, com todas as configurações, os membros e os arquivos de mensagens antigas.

2 Respostas para “Transferindo uma instalação do Mailman entre servidores”

  1. [...] por Gustavo Tondello (gustavoΘtondello·com) – referência [...]

  2. Estou começando agora a pesquisar sobre gerenciadores de listas de e-mails, como faz para adicional uma lista inteira de uma só vez? E não um usuário por vez…
    Obrigada!

Deixe uma Resposta