FreeBSD

Gerenciador de Listas

Mailman

 

O Mailman é um gerenciador de listas de discussão ou distribuição de e-mail. É desenvolvido na sua maior parte em Python. Uma das suas principais características é a interface Web, que facilita a administração das listas e a utilização por parte dos usuários. Seu site é www.list.org.
Entre alguns dos seus muitos usuários estão Apple Computer, Dell Computers, The XFree86 Project, SourceForge.net, Massachusetts Institute of Technology, RedHat, Samba, KDE Project, Python.Org, Zope.org e GNOME.Org - uma lista mais completa se encontra em http://www.list.org/inthenews.html.

Antes do Mailman, iremos instalar o Python. Efetue o download da última versão estável, ou "production version", a partir do site do Python (www.python.org). A versão atual é 2.3.3, e se encontra em http://www.python.org/ftp/python/2.3.3/Python-2.3.3.tgz. Descompacte e extraia o arquivo em /tmp e acesse o diretório que será criado - Python-2.3.3. Digite os comandos abaixo:

# ./configure
# make
# make install

Faça o download da última versão do Mailman a partir do seu site ou algum mirror, ou a partir de http://ftp.gnu.org/gnu/mailman. A versão atual é 2.1.4, e o arquivo chama-se mailman-2.1.4.tgz.

Crie o usuário e o grupo mailman, da seguinte forma:

# pw group add mailman -g 150
# pw user add mailman -c "Mailman" -d "/usr/local/mailman" -s "/bin/sh" -u 150 -g 150

O Mailman exige que se crie antecipadamente o diretório no qual irá instalar seus arquivos. Para isso, execute os seguintes comandos:

# mkdir /usr/local/mailman
# chgrp mailman /usr/local/mailman
# chmod 2775 /usr/local/mailman

Vá até o diretório /tmp e copie para lá o arquivo mailman-2.1.4.tgz. A instalação será feita pelo usuário mailman, para isso execute os seguintes comandos:

# su mailman
$ cd /tmp
$ tar xvzf mailman-2.1.4.tgz
$ cd mailman-2.1.4
$ ./configure
$ make
$ make install

Após a instalação, continue com o usuário mailman. Vá até o diretório /usr/local/mailman e rode o comando abaixo, que irá ajustar as permissões que estiverem incorretas:

$ bin/check_perms -f

Após isso, rode novamente o comando sem o parâmetro "-f", para verificar se as permissões estão certas.

Como o Mailman possui uma interface Web, é necessário que seja feita uma integração com o servidor Web, que é o Apache. Para isso, volte ao usuário root (digitando exit), edite o arquivo de configuração do Apache (/usr/local/apache2/conf/httpd.conf) e adicione as seguintes linhas, nos locais apropriados:

ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"

Alias /pipermail/ "/usr/local/mailman/archives/public/"

Após estas modificações, reinicie o Apache, através do comando "/usr/local/apache2/bin/apachectl restart". Devem ser ainda copiados os ícones e logotipos do Mailman para o diretório do Apache que guarda este tipo de arquivo:

# cp /usr/local/mailman/icons/* /usr/local/apache2/icons/

Além do Apache, deve-se configurar também o Postfix. Edite o arquivo /etc/postfix/main.cf e adicione as linhas abaixo:

owner_request_special = no
recipient_delimiter = +

No mesmo arquivo, troque a linha

alias_maps = hash:/etc/aliases

por

alias_maps = hash:/etc/aliases, hash:/usr/local/mailman/data/aliases

Feito isso, reinicie o Postfix, através do comando "/usr/sbin/postfix reload". Precisamos ainda que o Mailman saiba qual MTA estamos usando. Para isso, edite o arquivo /usr/local/mailman/Mailman/mm_cfg.py e adicione, no final, a seguinte linha:

MTA = 'Postfix'

Para que os arquivos de aliases do Mailman sejam inicializados e seus donos corrigidos, execute os seguintes comandos:

# cd /usr/local/mailman
# bin/genaliases
# chown mailman:mailman data/aliases*

Deverá ser adicionada e configurada uma lista inicial, para tarefas administrativas do Mailman. Para isso, vá até o diretório /usr/local/mailman e execute os seguintes comandos:

# su mailman
$ bin/newlist mailman

Surgirão as seguintes questões:
Enter the email of the person running the list: entre o seu endereço de e-mail, ou algum utilizado para administração do servidor.
Initial mailman password: insira uma senha para administração da lista.

$ bin/config_list -i data/sitelist.cfg mailman
Este comando fará com que seja atribuída a esta lista uma configuração inicial padrão (para este tipo de lista, e esta provavelmente será a única deste tipo).

Neste ponto, a interface de gerenciamento via web do Mailman deverá estar funcionando. Precisamos adicionar um usuário à lista de nome mailman recém criada. Acesse o endereço http://servidor/mailman/admin/mailman, e entre com a senha configurada anteriormente. Clique em "Membership Management" e então em "Mass Subscription". Na caixa de texto após a frase "Enter one address per line below..." insira o endereço de e-mail que foi configurado anteriormente, no momento de criação da lista. Para finalizar, clique no botão "Submit Your Changes".

O Mailman necessita que vários processos sejam agendados no Cron. Para isso, execute os seguintes comandos:

# su mailman
$ cd /usr/local/mailman/cron
$ crontab crontab.in

Isto fará com que seja criado o arquivo /var/cron/tabs/mailman, que é a tabela de cron do Mailman. Agora pode-se inicializar o daemon do Mailman, execute os comandos abaixo:

# su mailman
$ cd /usr/local/mailman
$ bin/mailmanctl start

Deve ser criada a senha geral de administração do Mailman. Ela será usada para adicionar listas e outras tarefas, e também pode ser usada no lugar das senhas individuais das listas. Execute o comando abaixo e insira a senha quando solicitado:

# /usr/local/mailman/bin/mmsitepass

Não será preciso criar um script de inicialização para o Mailman, apenas copie o arquivo /usr/local/mailman/scripts/mailman para /usr/local/etc/rc.d/mailman.sh, e altere sua permissão para 700.

Com isso, o Mailman está instalado, configurado e funcionando. Navegue pela interface web, mude o idioma das listas para Português e faça vários testes para conhecer bem o sistema antes de colocar alguma lista em produção.

 

Atualizado em 08/03/04.

Heini Thomas Geib.
http://www2.unijui.edu.br/~heini

Voltar