Fetchmail para manter a data / hora original

1

Estou configurando meu próprio IMAP e preciso coletar e-mails recebidos durante os últimos 9 anos em meu próprio servidor (e sincronizar continuamente a partir de algumas caixas de e-mail).

Eu configurei o fetchmail com êxito com uma conta de teste em uma caixa de correio vazia. Sempre que eu enviar e-mail para a caixa de correio de destino, ele será coletado via POP3 na minha caixa. Mas descobri que a mensagem que recebi no Windows Mail mostra a data / hora em que fetchmail foi executado. Isso pode ser apropriado para novos e-mails, mas é realmente inadequado para rastreamento de histórico.

Meu arquivo .fetchmailrc atualmente * mostra

set invisible

poll pop.fastwebnet.it proto imap
        user "redacted" pass "redacted" fetchall
        mda "/usr/lib/dovecot/deliver"

Minha caixa de entrada é configurada usando Postfix & Pombal com formato Maildir . Eu escolhi o POP3 para o fetchmail porque ele irá excluir a mensagem uma vez sincronizada para maildir.

Como posso saber fetchmail que o novo e-mail enviado para o Maildir deve corresponder exatamente ao encontrado no servidor, com referência a data e hora ?

Quero dizer, se eu sincronizar meu histórico do [email protected] que acumulou 9 anos de correspondência, todos eles serão datados hoje!

Por exemplo, enviei um e-mail de teste por volta das 14:59 para [email protected] , abri o webmail em fastwebnet.it para confirmar que 14:59 era a hora "oficial" e depois executei fetchmail do meu servidor às 15:30. O Windows Mail mostrou que o horário do e-mail era 15:30 em vez de 14:59.

Atualizações

A partir do comentário e da leitura da documentação, parece claro que o fetchmail normalmente adiciona um cabeçalho Received na parte superior do e-mail para que o cliente detecte que o e-mail é novo em folha.

Eu também executei fetchmail no modo detalhado, dessa vez usando o IMAP. Parece que, por padrão, ele envia e-mails via SMTP, então é aí que está o problema. Se meu servidor receber um email via SMTP para ser descartado no Maildir, ele assumirá que o email é novo em folha.

* Atualizei minhas perguntas da redação original

    
por usr-local-ΕΨΗΕΛΩΝ 30.12.2014 / 15:53

2 respostas

2

Parece que a data exposta ao usuário pelo Windows Mail não vem do campo de cabeçalho Date , mas sim do campo Received mais recente (os campos Received são destinados principalmente a rastrear uma mensagem através de gateways de entrega , como mencionado em RFC5321 e RFC5322 ).

Quando o fetchmail entrega uma mensagem, mesmo com a opção mda (não usando SMTP), por padrão, ele adiciona seu próprio campo Received com a data e hora atuais.

Felizmente, ele oferece uma opção para desativá-lo:

The --invisible option (keyword: set invisible) tries to make fetchmail invisible. Normally, fetchmail behaves like any other MTA would -- it generates a Received header into each message describing its place in the chain of transmission, and tells the MTA it forwards to that the mail came from the machine fetchmail itself is running on. If the invisible option is on, the Received header is suppressed and fetchmail tries to spoof the MTA it forwards to into thinking it came directly from the mailserver host.

Acredito que você queira combinar essa opção com uma entrega não SMTP, por exemplo, com --mda /usr/lib/dovecot/deliver . Caso contrário, o servidor SMTP provavelmente adicionaria seu próprio campo Received após o fetchmail.

    
por 30.12.2014 / 20:02
0

Como o escopo da pergunta era realizar uma migração "inicial" de caixa de correio, aqui estão as diferentes abordagens brute force : mova os emails do IMAP antigo para a nova caixa de entrada. A partir daí, o daemon fetchmail funcionará bem com novo mail

Via cliente (por exemplo, Outlook)

Sincronize as duas caixas de correio, selecione todos os (ou grupos de) e-mails e arraste & solte ou recorte & cole-os na nova Caixa de entrada. Isso levará algum tempo e trabalho manual, mas não causará nenhum ou pequeno dano, especialmente se você mover e-mails em grupos

Via dump

Como tenho acesso ao servidor, uma ferramenta como imap2maildir pode despejar uma caixa IMAP em uma caixa compatível com o Maildir. Mesclar o Maildir original com o novo inicializa corretamente a coleta de mensagens

Via qualquer outra ferramenta comercial específica

Existem várias ferramentas para migração / sincronização IMAP. Existem até mesmo ferramentas on-line, para as quais você deve fornecer sua senha de caixa (para sua segurança você pode alterar a senha para uma senha temporária durante a migração), e você deve confiar no serviço para não manter seus dados pessoais.

    
por 02.01.2015 / 15:33