Gerenciando Listas de Discussões com Mailman
Prezados amigos,
Primeiramente saudações a todos. Vida longa e próspera para nosso amado Linux.
Hoje eu vou colaborar falando um pouco do Mailman.
O que é o Mailman? O Mailman é um gerenciador de lista de discussões open-source, ou seja, ele serve para gerenciar as discussões através de e-mail. Provavelmente o Mailman é o gerenciador de lista de discussões mais popular e amplamente utilizado na Internet. Seu antecessor era o Majodormo, mas segundo pesquisas, este foi descontinuado.
Este tutorial irá explicar como instalar e configurar o Mailman em um servidor Debian Wheezy com um servidor de e-mail Postfix.
Apesar deste tutorial ensinar como implementar o Mailman com Postfix, vale lembrar que esta solução funciona também com outros servidores de e-mail, como por exemplo o Exim, Sendmail e Qmail.
Vou partir de um princípio que você já tenha um servidor de e-mail com Postfix devidamente configurado e funcionando. O apache também é necessário. Se você possui um Webmail instalado, com certeza você já tem. Para verificar, faça “# dpkg -l | grep apache2”.
Explicando o cenário a ser montado: Vamos configurar uma máquina com o hostname listas.dominio.com.br onde vou instalar Mailman.
Você deve criar a entrada listas.dominio.com.br no seu DNS.
Ao término das configurações que irei mostrar, os e-mails enviados para uma lista de discussões terá de ser enviada para o endereço @listas.dominio.com.br
1º Passo – Instalação do pacote
apt-get install mailman
Durante a instalação, você será perguntado sobre o idioma padrão. Escolha “Português (Brasil). É necessário também fazer um link simbólico do diretório do idioma escolhido para o diretório de configuração do Mailman:
ln -s /usr/share/mailman/pt_BR /etc/mailman/
2° Passo – Começando a configurar o apache
Mailman vem com um arquivo de configuração do Apache, “/etc/mailman/apache.conf , que copiaremos para “/etc/apache2/conf.d/mailman.conf” :
cp /etc/mailman/apache.conf /etc/apache2/conf.d/mailman.conf
Depois disso, edite o arquivo “/etc/apache2/conf.d/mailman.conf”.
vim /etc/apache2/conf.d/mailman.conf
Deixe-o assim:
ServerName listas.dominio.com.br DocumentRoot /var/www/listas ErrorLog /var/log/apache2/listas-error.log CustomLog /var/log/apache2/listas-access.log combined Options FollowSymLinks AllowOverride None Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm ScriptAlias /create /usr/lib/cgi-bin/mailman/create ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo ScriptAlias /options /usr/lib/cgi-bin/mailman/options ScriptAlias /private /usr/lib/cgi-bin/mailman/private ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo
Em seguida, crie o diretório “/var/www/listas”, ative listas.dominio.com.br na configuração dos hosts virtuais e reinicie o Apache:
mkdir /var/www/lists a2ensite /etc/apache2/conf.d/mailman.conf /etc/init.d/apache2 restart
Como estamos usando um host virtual (listas.dominio.com.br), precisamos ajustar as seguintes variáveis em “/etc/mailman/mm_cfg.py”:
vim /etc/mailman/mm_cfg.py
Ajuste as linhas, conforme abaixo:
[...] DEFAULT_URL_PATTERN = 'https://%s/' [...] DEFAULT_EMAIL_HOST = 'listas.dominio.com.br' [...] DEFAULT_URL_HOST = 'listas.dominio.com.br' [...] DEFAULT_SERVER_LANGUAGE = 'pt_BR' [...]
3º Passo – Configurar o Postfix
Execute os comandos abaixo para adicionar as configurações necessárias ao Postfix:
postconf -e 'relay_domains = listas.dominio.com.br' postconf -e 'mailman_destination_recipient_limit = 1' postconf -e 'dovecot_destination_recipient_limit = 1'
Agora é necessário editar o arquivo “/etc/postfix/master.cf”:
vim /etc/postfix/master.cf
Adicione as linhas abaixo:
mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
Em seguida, devemos associar o host “listas.dominio.com.br” ao “transport” do postfix. A maneira de fazer isso depende da configuração do Postfix. Na maioria das configurações, o arquivo “/etc/postfix/transport” é utilizado para a criação e manipulação dos transportes. Então, vou explicar como configurar através deste arquivo.
Adicionando a configuração ao Postfix:
postconf -e 'transport_maps = hash:/etc/postfix/transport'
Agora crie ou, se existir, abra o arquivo “/etc/postfix/transport”:
vim /etc/postfix/transport
Deixe-o assim:
listas.dominio.com.br mailman:
Agora vamos ativar essas configurações:
postmap -v /etc/postfix/transport /etc/init.d/postfix restart
4º Passo – Criar a lista de discussão mailman
Antes que possamos começar a usar o Mailman, devemos criar uma lista de discussão chamada “mailman”, que é obrigatória. Sem ela o Mailman não inicia:
newlist --urlhost=listas.dominio.com.br --emailhost=listas.dominio.com.br mailman
A saída do comando deve ser assim:
root@servidor:~# newlist –urlhost=listas.dominio.com.br –emailhost=listas.dominio.com.br mailman
Enter the email of the person running the list:
Initial mailman password:
Para concluir a criação da lista, você deve editar o arquivo “/etc/aliases” adicionando as linhas exibidas na saída deste comando. Logo depois rodar o comando “# newaliases“.
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases’ program:
## mailman mailing list
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”
Hit enter to notify mailman owner…
Agora para finalizar, basta ajustar as permissões para criação dos arquivos das listas, reiniciar novamente o Postfix e, enfim, iniciar o Mailman:
cd /var/lib/mailman/ chown -hR list:list ./*
Agora vamos checar as permissões:
/usr/lib/mailman/bin/check_perms -f
Agora vamos reiniciar o Postfix e iniciar o Mailman:
/etc/init.d/postfix restart /etc/init.d/mailman start
Vamos agora criar a senha para que seja possível a criação de novas listas através da interface web:
mmsitepass sua-senha
Substitua “sua-senha” pela senha desejada.
Pronto! Agora é só acessar o sistema pelo endereço:
https://listas.dominio.com.br
Da próxima vez que precisar criar uma lista, você pode criar pela interface Web:
https://listas.dominio.com.br/create
Se desejar excluir uma lista, você precisará usar o comando rmlist:
rmlist -a nome-da-lista
Esse comando excluirá a lista e todos os arquivos referentes a ela.
Isso foi tudo!
Espero ter colaborado.
Esse artigo foi útil? Colabore com o nosso site para podermos continuar dando mais dicas como essa!
Formas de doação:
- Boleto / Cartão de crédito: https//bit.ly/AprendendoLinux
- Pix: [email protected]
- PicPay: @henrique_fagundes
- PayPal: [email protected]
- Bitcoin: bc1qtnn5z058htzy799dslwrpjcdpm0vuta3vrj28l
Favorecido: Luiz Henrique Marques Fagundes