Meio Bit » Arquivo » Internet » Em busca do email perfeito

Em busca do email perfeito

18 anos atrás

Boa tarde. Meu nome é Cardoso e eu sou um viciado em emails. Admito. É uma forma de comunicação revolucionária, não dá para viver sem ele hoje em dia. Só que em todos esses anos em nunca consegui um cliente de email que me atenda.

Veja, não estou falando de fofoletização de mensagens, odeio email HTML. Falo de recursos de busca, por exemplo. Já usei Todos, todos os clientes disponíveis, e nenhum me atendeu. The Bat, Eudora, Thunderbird, Outlooks (tanto o Full quanto o Express), Opera, Pine e vários outros. Ou não atendem em termos de recursos, ou são um trambolho em termos de performance.

Neste post discuto minhas necessidades, expectativas e experiências em busca do Cliente de Email ideal para minhas necessidades.

NOTA: ESTE TEXTO REFERE-SE A NECESSIDADES ESPECÍFICAS

DE UM HEAVY-USER DE EMAIL. NÃO CONFUNDA

COM O DIA-A-DIA DE USUÁRIOS NORMAIS

QUE RECEBEM ENTRE 10 E 20 MENSAGENS.

O Outlook, por exemplo, funciona muito bem quando ligado a um servidor Exchange, já localmente fica de joelhos quando
falamos de mais de 5 mil mensagens em uma pasta. A vantagem do servidor entretanto é comida pela limitação da banda.

O Thunderbird também não aguenta muita coisa. A integração com RSS é bem-vinda mas prefiro que não exista, se for
ruim. Há um excelente plugin para o Outlook, mas além de se tornar comercial antes do tempo, mais de 100 feeds acabam
com a performance. A parte das buscas é crítica. Tenho muitas, MUITAS mensagens. Se importar backups do tempo dos
BBS, tenho mais de 10 anos de mensagens. Uma busca linear (que é o feito por 100% desses clientes) consome tempo
demais. O Google Desktop é uma excelente alternativa, pois indexa sua máquina, incluindo emails. Só que se
no formato Outlook, e haja espaço em disco.

Solução Parcial

Depois de muito buscar o quebra-galho que achei foi o Becky. Produzido originalmente
no Japão, é uma bela peça de software, mas não sai nada novo dele desde 2003.

Ferramenta de buscas do Becky

O Becky foi o único programa que aguentou minha caixa-postal sem reclamar, e que me atendeu na maioria de seus
recursos. Mesmo assim, não tem vários conceitos úteis, como pastas virtuais e links dinâmicos, e seu controle de
anexos é fraco; não é possível definir uma pasta-padrão para JPEGs, por exemplo. Para facilitar em termos de
performance, a cada seis meses crio um backup, apago as mensagens antigas e recomeço do zero. É incômo, chato e pouco
prático, ainda mais quando sei que algo que quero está em uma mensagem perdida do ano passado.

O Problema Principal

O calcanhar de aquiles desses programas todos chama-se Banco de Dados. A maioria desses programas usa variações do
format mbox original do Unix, que não passa de um texto
corrido. Sem índices, sem organização. Apenas mensagens em forma cronológica, texto puro. Para um desenvolvedor isso
é uma aberração, lembra o tempo em que escrevíamos arquivos sequenciais em unidades de fita da IBM. (ou no gravador
K7 do MSX, com print#). Imagine que você queira remover permanentemente todas as mensagens de um determinado usuário,
"MARCELO". Sua caixa-postal é um arquivo-texto, com as mensagens recebidas gravadas assim:

ANA|LUCIANA|MARCELO|LUCIANA|LUCIANA|MARCELO|MARIA

Dos sete emails, quero eliminar somente 3. Com isso eu tenho que, programaticamente, marcar o inicio do primeiro
email de MARCELO, selecionar o bloco do final do primeiro email de MARCELO, mover esse bloco sobreescrevendo
o primeiro email. Depois repetir o processo com os outros emails. Com caixas de dez ou 100 emails,
tranquilo. Com caixas de milhares de emails, estamos falando de um absurdo de informação trafegada. Há, claro,
formatos mais eficientes, mas em sua maioria ficam presos ao velho arquivo-texto sequencial.

E a Microsoft?

O Outlook é um excelente PIM, mas sua implementação de email deixa a desejar. Não só pelas frequentes falhas de
segurança e mania de enviar tudo em RTF ou HTML, mas pela deficiência do banco local. Embora seja muito mais avançado
que os programas que usam arquivos-texto, o Outlook é deficiente, sua implementação de banco de dados é muito, muito
frágil.

Cansei de mandar gafanhotos pra consertar caixas corrompidas, e já virei noite salvando uma instalação corrompida no
Servidor Exchange. Isso traumatiza qualquer um. Ainda por cima o ganho do banco de dados é quase nulo, diante do peso
do resto da aplicação.

A
Solução

Meu projeto mais bem-sucedido em meu antigo emprego envolvia um banco com mais de 100 milhões
de registros, devidamente indexados, com chaves, consistência, tudo que puder imaginar. Rodava sob SQL Server, e
voava baixo. Dada a simplicidade, poderia ser feito via mySQL, mas não era política à época.

Bancos de Dados são aplicações otimizadas para busca, indexação e organização de informação. Nenhum TXT, nenhum
Access, nenhum mbox jamais será tão eficiente quanto um Banco de Verdade, nesse campo.

Entretanto, embora eu tenha procurado muito, não achei nenhuma aplicação de email que use um banco de dados
como backend. Nem para Windows, Linux, nada. No máximo achei uma aplicação meia-boca de webmail, que definitivamente
não atende.

Imagine, uma aplicação rodando atrelada a um mySQL da vida, voando baixo indexando suas mensagens, gerando
estatísticas, organizando seus anexos, permitindo threads sem ficarem incômodas, com direito a rating, relevância e
outros bichos.

Vejamos como uma aplicação de email se beneficiaria de um banco de dados:

Informação Extra nos
Cabeçalhos

Uma mensagem pode vir acompanhada de informações como:

From: [email protected]

To: [email protected]

Subject: Job Offer (again)

Mensagens recebidas do remetente: 325

Mensagens enviadas para o remetente: 12

Threads isoladas: 6

Total de Arquivos Anexados Recebidos: 12

Subject mais popular: Job Offer

Relevância do Remetente: 5 (de 10)

Cliente preferido: Outlook

Sistema Operacional: Windows 98

Comunidades

Ao responder uma mensagem de uma lista, o programa pode indicar de quais outras listas que você assina,
determinado usuário é membro, e até mesmo se ele já trocou mensagens com você alguma vez. Pode trazer a média de
mensagens do usuário, data de seu primeiro post, quantas listas assina, etc.

Você pode selecionar um filtro para mostrar somente mensagens de gente que já trocou correspondência com você, ou
então somente os novatos. Pode selecionar mensagens com subjects semelhantes (via SOUNDEX) e ordenar as mensagens por
relevância, usando um algoritmo baseado em quantidade de mensagens do usuário e tempo de participação. Com um clique
você pode ocultar um determinado subject.

As mensagens podem ter um recurso de Classificação Comunitária, onde a quantidade de respostas indicaria sua maior ou
menor popularidade.

Web 2.0

Embora muito seja marketing, algumas ferramentas da Web 2.0 são bem úteis. Quantas vezes você viu uma
mensagem interessante em uma lista, mas não guardou por não ter necessidade imediata? Agora imagine o pior, você
efetivamente guarda suas mensagens úteis. Imagine o pesadelo de buscar milhares de mensagens atrás de uma
específica, ainda mais se usar termos comuns como "internet" e "configuração".

Que tal usar tags para isso? Ao invés de ficar copiando para pastas específicas, apenas adicione algunas
tags.

FAQ, PALM, CONFIGURAÇÃO, EMAIL

Depois é só implementar uma interface no estilo del.icio.us e fazer suas buscas,
sem precisar criar pastas e pastas, nem cuidar você mesmo da indexação.

Antispam

Ferramentas como o SpamAssassin são excelentes, mas
dependem de treinamento. Quanto mais mensagens, mais refinadas ficam. Uso o excelente K9, que apresenta menos de 1% de falsos positivos, mas preferia que estivesse
totalmente integrado na minha aplicação, pois é muito ruim ter o banco de spams carregado em memória todo o tempo.

Conclusão

São muitas as possibilidades de uma ferramenta de email baseada em Banco de Dados, é um projeto que
vale a pena ser tocado, penso em fazer isso mas somente se esgotadas as possibilidades. Então pergunto: ALLguém
conhece uma ferramenta com as características descritas acima, ou que via plugins seja expansível? É essencial:

  • Armazenamento baseado em Banco de Dados (MSSQL, mySQL, Postgres, Oracle, etc)

  • Expansível via plugins

  • Funcionamento offline (nada de imaps ou gmails)

  • Inteligência residindo no banco, não na aplicação

  • Escrito em linguagem de verdade (nada de Python ou outros scripts. C++, C#, Java ou .NET)

relacionados


Comentários