Qualquer aplicativo cliente de e-mail baseado em arquivo? (Com o objetivo de colocar a caixa de correio em VCS.)

4

Como o Subversion, que possui dois tipos de back-end: BDB-based e File-based. A maioria dos aplicativos de e-mail que vi estão usando o back-end do banco de dados, mas o banco de dados não é tão conveniente para manipular pelo usuário final.

Atualmente estou usando o Thunderbird, que também usa o banco de dados como back-end. Eu corro o Thunderbird em quatro máquinas, então existem 4 bancos de dados separados. E eu tenho um monte de contas de e-mail, talvez 20 ou mais. (Não, por favor, não me avise o correio.) Então, se o back-end é baseado em arquivos, eu posso apenas configurar um repositório Git e sincronizá-los todos. Mas o Thunderbird tem seu formato de banco de dados interno, por isso é muito inconveniente gerenciar esses bancos de dados separados.

    
por Xiè Jìléi 21.05.2011 / 03:56

2 respostas

5
O formato

Maildir para armazenamento de e-mails foi introduzido, fazendo exatamente o que você descreve: um mensagem é armazenada em um arquivo separado.

E há drivers do Maildir (back-ends) para alguns clientes de e-mail, alguns agentes de entrega de e-mail e alguns servidores de acesso a e-mail (IMAP ou POP ou interface da web).

É claro que, se o seu e-mail estiver armazenado em Maildirs, é mais fácil colocá-lo sob controle de versão usual.

Assim, você pode procurar back-ends do Maildir para clientes de e-mail.

Mas, na verdade, sincronizar seu armazenamento de e-mail pode ser um pouco mais complicado do que sincronizar diretórios de arquivos - devido a vários sinalizadores (novos, lidos), rótulos, movimentos ou cópias de mensagens entre pastas, e - a parte mais complicada - as IDs de mensagens internas do servidor usadas pelos servidores de acesso de correio (IMAP) ou pelos clientes de correio . Quais são esses IDs sobre? Bem, é importante preservar IDs entre várias cópias de seu armazenamento de mensagens para, digamos, o procedimento de armazenamento em cache de seu cliente de correio ser executado corretamente.

Eu explorei essa questão e escrevi algumas anotações aqui: pesquisa sobre COMO fazer backup de uma conta IMAP . (Mas então eu não tive que completar essa tarefa, então as notas e minha solução prática não estavam completas.)

A ideia geral a que cheguei é que usar um cliente de email e simplesmente colocar Maildirs sob controle de versão não dá a você tudo o que você pode querer de gerenciar as revisões de seu armazenamento de email. É melhor combiná-lo com servidores IMAP reais (remotos ou locais) para acesso uniforme ao correio, e com ferramentas especiais executadas em cima do IMAP para sincronizar diferentes cópias / repositórios / ramificações do armazenamento de mensagens (as ferramentas especiais serão cuidar dos sinalizadores, etiquetas, IDs corretamente). O controle de versão usual é OK para inspecionar as revisões e reverter para uma revisão anterior, mas para mesclar ramificações (= syncronizing) eu consideraria um procedimento mais complexo:

You want to merge branches A and B.

  • So you prepare the new state (revision) C that will hold the merged state by copying one of them, e.g., copy A to the new C.
  • Then you use a tool (like "imapsync"; choose the one that matches your needs; I have listed a few such tools in my notes) to bring the new changes from B to C: imapsync B to C.

(this might assume that you are accessing the mail storage via IMAP through a server)

  • Now commit C (as the result of merging A and B; before this, you might use an appropriate command in your VCS to write down the information that is the result of merging B to A, e.g., something like "git merge B -s ours --no-commit" in C).

Por favor, explore os detalhes você mesmo, eu tenho apenas a idéia geral em mente, e não estou executando esse procedimento na prática agora.

Eu acho que esta é uma tarefa muito interessante a ser feita por utilitários conhecidos, eu gostaria de ouvir mais sobre configurações bem-sucedidas para fazer isso que outras pessoas criaram!

AFAIR Eu escolhi offlineimap para minha tarefa de fazer backup de uma conta IMAP no Git. BTW aqui uma resposta com um exemplo de configuração de offlineimap .

    
por 21.05.2011 / 08:11
4

A melhor resposta é usar um servidor projetado para compartilhar email entre clientes - um servidor IMAP. Praticamente qualquer cliente de e-mail poderá acessar o e-mail nesse servidor. Você pode configurar o seu próprio, no Ubuntu, ou usar o Gmail, ou se você estiver usando um ISP para o seu e-mail que o ISP provavelmente permitirá o acesso IMAP ao seu e-mail.

    
por 21.05.2011 / 07:41