.
Aurium.Colivre.Coop.br Esse site é Legal Demais para Internet Explorer

Aurium :: IndexandoEmailsPorThread

Últimas blogadas:

%HEADLINES{"http://softwarelivre.org/aurium/blog/feed" refresh="600" header="SoftwareLivre.org" limit="15" format=" * $title" }% %HEADLINES{"http://cirandas.net/aurium/blog/feed" refresh="600" header="Cirandas.net" limit="15" format=" * $title" }%



Como fazemos a indexação de e-mails para que um webmail (ou cliente de e-mail) tenha suporte a agrupamento de e-mails por Thread como o GMail?

Bem, temos que começar com um diretório de e-mails, uma tabela de threads (basicamente será uma tabela de subjects e datas) e uma tabela de relacionamento com informações extras (que guardará o vínculo com os arquivos e informações úteis a esta aplicação). Ordenar os e-mails por data significa ordenar a coleção de threads por data e a data de uma thread é a data de seu e-mail mais recente. (ou seja entrada de novos e-mails sempre criará um novo relacionamento e modificará a tabela de threads)   Mais um detalhe, não é bom simplesmente anexar novos e-mails em uma thread muito antiga e trazer aquela conversa ultrapassada ao topo da listagem de e-mails. Subjects podem se repetir meses ou anos depois, mas a conversa já é outra, portando um novo e-mail deve estimular a criação de um novo registro de tread com subject repetido, caso a data da thread de subject compatível seja mais antiga que X meses (configurável, mas 2 meses me parece adequado).

Agora sim, toda vez que o webmail quiser listar os e-mails ele fará uma listagem da tabela de threads e apresentará um resumo baseado nas informações da tabela de relacionamento.

Como se daria o processo de registro de um novo e-mail?

  1. chega o e-mail
  2. arrancamos do subject tudo aquilo que pode ser adicionado pelo cliente de e-mail, como Re: ou Fwd:
  3. procuramos por uma ocorrência do subject, com data menor que X meses na tabela de threads
    • Caso não exista criamos esse registro, e preenchemos os campos base_subject e original_subject (para apresentarmos a informação na interface do usuário sem precisar buscar na tabela de e-mails)
  4. criamos um registro na tabela de relacionamento contendo a data, nome do autor, subject, resumo e importância.
  5. registramos a data do e-mail no registro da thread

DiggThis

Copyright © 2004 - 2019 Aurélio A. Heckert
Conteúdo licenciado sob Creative Commons by-nc-sa