Vai para a Front Page do site

Para o índice do site

Dicas para owners e usuários de listas de discussão

Nota: As dicas a seguir referem-se a listas de discussão gerenciadas pelo programa majordomo. Se sua lista usa outro programa (como o Listserv, da Lsoft) você terá que descobrir de que maneira ele implementa as funções citadas aqui e usar as explicações que dou para os problemas como forma de implementar uma solução no seu programa específico.

 

Duplicação de Prefixos

Se você participa de uma lista de discussão ou gerencia uma deve ter se deparado com um problema incômodo e intermitente. De vez em quando e apenas em certas discussões (threads), o prefixo da lista aparece em duplicata no subject da mensagem. Dependendo do andamento da discussão o prefixo continua se duplicando estranhamente, até que começamos a receber mensagens com subjects como os abaixo:

[noticias-l] Re: [noticias-l] Re: [noticias-l] En: [noticias-l] Re: [noticias-l] Bangalôs do Pontal

[noticias-l] Re: [noticias-l] Re: [noticias-l] RE: [noticias-l] Re: [noticias-l] HTML em lista pública!

Subjects assim são muito difíceis de acompanhar e de ordenar, como mostra a figura abaixo:

Essa ocorrência NÃO é normal e pode ser corrigida.

A razão

Isso ocorre apenas em mensagens cujo subject tem acentuação e por causa da maneira que alguns programas de e-mail modernos tratam os acentos. Isto inclui todas as versões do Outlook Express. Você não vê isso, mas no código fonte da mensagem o programa converte toda letra acentuada para seu equivalente no charset iso-8859-1. No processo, certos caracters como o colchete também são convertidos. Ao receber o reply, majordomo procura no subject da mensagem pelo prefixo, mas como os colchetes foram "convertidos" internamente e majordomo não entende nada de iso-8859-1, ele pensa que não há prefixo e adiciona um outro.

A solução

O administrador da lista precisa mudar o prefixo. Os colchetes devem ser removidos. No exemplo acima, a mudança do prefixo de [Noticias-l] para Noticias-l: resolveu o problema. Se estiver fora do alcance do administrador a mudança do prefixo, este deve solicitar aos assinantes que não usem acentuação no subject das mensagens.

 

Como barrar mensagens automaticamente

 

Nota: minha primeira versão deste texto era bem mais simples de entender, mas eu encontrei "brechas" que precisavam ser esclarecidas, o que aumentou a complexidade do texto. Se você tiver dificuldade para entender o que está descrito aqui, não hesite em me mandar um e-mail. Terei o maior prazer em fazer as modificações necessárias para tornar o texto mais claro.

Majordomo possui duas opções em seu arquivo de configuração que permitem a você configurá-lo para "desconfiar" de uma mensagem e mandá-la primeiro para você (o owner). Essas opções são taboo_headers e taboo_body. "Taboo" significa algo como "proibido".

taboo_headers é uma lista de expressões que são proibidas ou merecem atenção, se encontradas no cabeçalho (header) das mensagens. O cabeçalho de uma mensagem geralmente só é visível quando você olha o seu código fonte e inclui muitas informações interessantes sobre o conteúdo da mensagem e por onde ela passou até chegar a seu destino.

taboo_body, por sua vez, é uma lista de expressões que vão ser procuradas no corpo (body) da mensagem. A maior parte do corpo da mensagem é visível para o usuário, mas os programas modernos de e-mail escondem muitos detalhes. Como regra geral, considere que o que não for um "header", faz parte do "body".

Se majordomo aceitasse uma simples lista de palavras separadas por vírgula, seria muito fácil. Mas majordomo exige que você use uma sintaxe específica baseada no que, no mundo Unix, chamamos de "regular expressions" (RegExps).

Nos exemplos, vou usar a opção taboo_headers, mas o uso em taboo_body é idêntico.

É assim que a opção taboo_headers se apresenta no arquivo de configuração:

taboo_headers << END

END

Tudo nas linhas entre os dois END, é usado como filtro de mensagens. Cada expressão é colocada em uma linha separada e deve ser obrigatoriamente cercada por barras assim:

taboo_headers << END
/zipmail/
END

No exemplo acima, toda mensagem que contenha a palavra "zipmail" no header, vai ser apanhada pelo pente fino do majordomo e direcionada para o owner antes de ir para a lista.

Você pode incluir mais de um filtro:

taboo_headers << END
/zipmail/
/elogica/
END

Todo e-mail que vier da Zipmail ou da Elogica vai passar por você primeiro.

Ë possível fazer coisas muito interessantes com esses filtros, mas algumas delas exigem uma boa compreensão de regexps. A seguir, mostro dois bons exemplos já prontos de uso.

 

Como barrar anexos (atachments) e/ou e-mail HTML

O pesadelo para qualquer administrador de uma lista séria. Os anexos costumam ser barrados limitando-se tamanho da mensagem no arquivo de configuração da lista. Mas essa solução nem sempre é a melhor, porque se você impuser um limite baixo, para barrar todos os anexos possíveis, acaba barrando mensagens de quem gosta de escrever muito.

Se você impuser um limite alto, pequenos atachments acabam passando. E exceções à regra não são coisas que você deva tolerar.

Existe uma expressão que aparece no cabeçalho de toda mensagem com anexo:

multipart/mixed

Como essa barra no meio da expressão pode confundir majordomo, é preciso usar a sintaxe das regexps para contornar o problema. A expressão que você deve usar é a seguinte:

multipart.mixed

O ponto no lugar da barra, significa, em regexps, "qualquer caractere".

Como esse filtro deve ser incluído em taboo_headers, seu resultado final é o seguinte:

taboo_headers << END
/multipart.mixed/
END

Após essa modificação, toda mensagem em HTML enviada para a lista será redirecionada para o owner (você), que poderá ou não aprová-la. A mensagem recebida por você terá um subject mais ou menos assim:

BOUNCE <nome_da_lista>: taboo header: /multipart.mixed/

Já o e-mail formatado em HTML pode ser útil em certas circunstâncias, mas em 99% dos casos as pessoas o utilizam de forma abusiva e com muito mau gosto. Além do mais, nem todo programa de e-mail entende HTML. Enviar e-mail HTML para uma lista de discussão é (por diversas razões) indesejável, desnecessário e incômodo. Muitas listas proibem seu uso.

Alguns administradores tentam impedir de forma automática que os usuários enviem e-mail em HTML para a lista limitando o tamanho das mensagens, mas isso não é totalmente eficaz. O melhor meio é o que se segue.

Para barrar o e-mail HTML, siga as instruções acima, mas use as expressões:

multipart.alternative
text.html

Nota: multipart/alternative é a expressão que vai aparecer em e-mail enviado pelos programas de e-mail mais populares, porque estes ao mandar um e-mail em HTML também enviam uma cópia em texto puro (na mesma mensagem), para o caso do programa do destinatário não ser capaz de ler HTML (daí vem a parte multipart da expressão).

Entretanto, quando uma mensagem é enviada exclusivamente em HTML, multipart/alternative é substituída por text/html no header. Esse é o caso dos boletins HTML que são enviados via e-mail, como os da ZDNET, da PCWORLD e da IDGNOW.

multipart/alternative deve filtrar quase 100% das mensagens, mas use text/html para se certificar.

Isso deve ser suficiente na maioria das situações, mas se a pessoa mandar uma mensagem HTML com um anexo suficientemente pequeno para passar pelo filtro de tamanho, ela vai passar por esse filtro também, porque apenas a expressão multipart/mixed, típica das mensagens com anexo, vai estar no cabeçalho no lugar das citadas anteriormente. Para contornar isso, sua taboo_headers deve ser parecida com a seguinte:

taboo_headers << END
/multipart.alternative/
/text.html/
/multipart.mixed/
END

Isso deve barrar qualquer tentativa de enfiar lixo em sua lista :)

 

Nota: Se você tiver implementado (com sucesso ou não) estas dicas em uma lista de discussão, por favor me mande um e-mail sobre a experiência.

Para o índice do site

(copyright 1999 - Jefferson Ryan)
Como entrar em contato