Alterar data de recebimento de e-mail: limites técnicos

9 min

Um e-mail tem três "datas". Não uma.

Quando se fala em "alterar a data de recebimento de um e-mail", a maioria das pessoas imagina modificar um campo em algum lugar, como se fosse mudar a data de criação de um arquivo no Windows. A realidade é um pouco mais complicada. Um e-mail carrega três camadas distintas de datação, cada uma com suas próprias regras, seus próprios guardiões, e suas próprias consequências se você mexer nelas.

Entender essas três camadas é entender por que certas correções são tecnicamente saudáveis, enquanto outras são impossíveis ou imediatamente detectáveis como falsificações.

Camada 1: o INTERNALDATE IMAP

O INTERNALDATE é um metadado armazenado no lado do servidor, fora do próprio conteúdo da mensagem. Não faz parte do e-mail em si. É o servidor IMAP que o define, e é ele que a maioria dos clientes de e-mail usa para ordenar as mensagens na lista.

O Outlook, por exemplo, exibe por padrão as mensagens ordenadas pelo INTERNALDATE. O Gmail também, em certos contextos. Então, se o seu INTERNALDATE estiver errado, todos os seus e-mails parecem ter a mesma data na interface, independentemente do que os cabeçalhos internos da mensagem dizem.

O INTERNALDATE é definido no momento em que a mensagem é depositada no servidor. Via protocolo IMAP, a única forma de "modificá-lo" é indireta: é preciso usar o comando APPEND para depositar uma nova cópia da mensagem com a data desejada. Não existe um comando IMAP SETINTERNALDATE. Esse detalhe vai importar daqui a pouco.

Camada 2: o cabeçalho Date: (RFC 2822)

É o campo Date: nos cabeçalhos brutos da mensagem. Ele é definido pelo cliente de e-mail no momento do envio e viaja com a mensagem de servidor em servidor. É a data de envio declarada pelo remetente.

(Aliás, se você nunca olhou para os cabeçalhos brutos de um e-mail, é uma leitura bastante surpreendente. Cada mensagem carrega umas vinte linhas técnicas que 99% das pessoas jamais viram.)

Tecnicamente, nada impede que um e-mail seja enviado com o campo Date: antedatado ou pós-datado. Os servidores SMTP não validam esse campo. Mas os servidores destinatários registram o horário de chegada real nos cabeçalhos Received:, o que cria imediatamente uma incoerência visível por qualquer cliente de e-mail ou ferramenta de análise.

Camada 3: os cabeçalhos Received: empilhados

Cada vez que um servidor SMTP repassa uma mensagem, ele adiciona um cabeçalho Received: no topo da pilha, com um timestamp. Um e-mail que passou por três servidores terá três cabeçalhos Received:. Eles são lidos de baixo para cima: o mais antigo fica embaixo, o mais recente fica no topo.

É exatamente aí que as ferramentas de migração criam o problema. Quando o BitTitan MigrationWiz, CloudM, imapsync ou GSMMO migram um e-mail, eles o reinjetam no novo servidor via IMAP. Esse depósito gera um novo cabeçalho Received: com o timestamp do momento da migração. Resultado: o e-mail mais antigo da sua caixa, uma mensagem de 2019, passa a ter um Received: datado de novembro de 2024. E como certos clientes de e-mail (o Outlook em primeiro lugar) usam o Received: mais recente como data de exibição...

Esse é o problema. 15.000 e-mails exibindo todos a mesma data de migração.

Dá para realmente "modificar" essas datas?

Tecnicamente, sim para o INTERNALDATE (com restrições). Tecnicamente possível, mas inútil para o Date:. E quanto aos Received:, vale a pena examinar com calma.

Reescrever um cabeçalho Received: é trivial. E imediatamente detectável.

Um cabeçalho Received: não passa de uma linha de texto na mensagem. Dá para editá-lo como qualquer arquivo texto. É exatamente tão simples quanto parece.

Mas veja o que acontece a seguir.

Primeiro problema: DKIM. A assinatura DKIM (DomainKeys Identified Mail) é calculada sobre um conjunto de cabeçalhos da mensagem, incluindo às vezes os Received:. Modificar um cabeçalho assinado invalida a assinatura. Qualquer servidor destinatário que verifique DKIM verá imediatamente que a mensagem foi alterada. Não é uma falsificação sutil, é um alarme.

Segundo problema: os identificadores internos. Os servidores de e-mail modernos (Google Workspace, Microsoft 365) atribuem a cada mensagem um identificador interno crescente e único. Esses identificadores estão vinculados ao INTERNALDATE e à ordem de recebimento. Modificar um Received: sem coerência com esses identificadores cria inconsistências que ferramentas de auditoria detectam sem dificuldade.

Terceiro problema, mais prático: mesmo que você modifique o Received: no conteúdo da mensagem, não tocou no INTERNALDATE, que continua sendo o do depósito IMAP. O cliente de e-mail continua exibindo a data errada para ordenação. Você modificou a mensagem à toa.

Resumindo. Reescrever os Received: para falsificar uma data de e-mail com intenção maliciosa: trivial tecnicamente, detectável em segundos por qualquer especialista. Não é um caminho sério.

O cabeçalho Date:: mudar o passado no papel

O mesmo raciocínio vale para o Date:. Dá para modificá-lo no corpo da mensagem. Mas os cabeçalhos Received: autenticados pelos servidores intermediários permanecem intactos e contam uma história diferente. A cadeia temporal é incoerente. Qualquer analista ou instância judicial que compare esses campos vai notar na hora.

Para ser preciso, isso não impede certos clientes de e-mail de exibir o Date: modificado se você apresentar diretamente o arquivo .eml. Mas no contexto de um servidor de e-mail ativo, com autenticação e registros de log, a modificação é transparente.

A migração IMAP: o único contexto onde corrigir as datas é legítimo

Há um caso, e somente um, em que modificar a data de recebimento de um e-mail não só é possível como é tecnicamente justificado: corrigir os danos causados por uma migração IMAP mal conduzida.

A situação concreta. Você acabou de migrar 80 caixas de correio do Exchange para o Microsoft 365. A migração terminou numa sexta à noite. Na segunda-feira de manhã, os primeiros chamados chegam: "Todos os meus e-mails têm a mesma data", "Não consigo encontrar um e-mail do ano passado", "Meu histórico com esse cliente está completamente quebrado". Você tem 80 usuários parados e seu gestor esperando uma resposta.

Nesse contexto, o problema é documentado, identificável, e a causa é clara: a ferramenta de migração adicionou um Received: datado do dia da migração, e certos clientes de e-mail usam esse novo cabeçalho como data de exibição. O cabeçalho Date: original, por sua vez, está intacto em cada mensagem. Nunca foi modificado. Ainda contém a data de envio original, correta.

A correção não é uma falsificação: é uma restauração. Parte-se de dados verdadeiros (o Date: original) para reconstruir metadados coerentes. Isso é fundamentalmente diferente de tentar fazer um e-mail de 2024 parecer um e-mail de 2019.

Para aprofundar nos mecanismos específicos de cada ferramenta, estes guias detalham os casos concretos: corrigir datas do BitTitan no Microsoft 365, corrigir datas do CloudM no Outlook, ou corrigir datas do imapsync no Google Workspace.

Por que escrever um script por conta própria é arriscado

A lógica básica é acessível. Qualquer administrador de TI que já passou um tempo em fóruns de IMAP consegue reconstituir a abordagem geral. Esse não é o problema.

O problema é a distância entre um script que funciona em 50 e-mails de teste e um script que processa 40.000 mensagens em produção sem perder um único e-mail, sem corromper um único anexo, e sem quebrar um único fio de conversa.

Alguns casos concretos que scripts caseiros geralmente não tratam:

  • E-mails assinados com S/MIME: a assinatura cobre o conteúdo e os cabeçalhos. Qualquer modificação na estrutura da mensagem invalida a assinatura. Um e-mail assinado corrigido de forma descuidada chega como "assinatura inválida" para os destinatários.
  • Mensagens criptografadas com PGP: mesma família de problemas, com consequências potencialmente piores dependendo da implementação.
  • Codificações não-ASCII nos cabeçalhos: o RFC 2047 descreve a codificação de caracteres especiais nos cabeçalhos. Um script que manipula cabeçalhos sem tratar esses casos vai corromper silenciosamente assuntos de e-mail com acentos, caracteres japoneses ou nomes em árabe.
  • Limites de taxa de API: o Google Workspace e o Microsoft 365 implementam throttling agressivo. Às 3h da manhã, um lote de 10.000 e-mails que encontra um erro 429 Too Many Requests sem tratamento de backoff exponencial deixa metade das caixas semi-corrigidas.
  • Fronteiras MIME corrompidas: mensagens multipart com anexos têm fronteiras MIME precisas. Gerá-las incorretamente torna os anexos ilegíveis.

E a pergunta que nenhum script caseiro responde: como verificar que cada e-mail corrigido está íntegro? Um script que modifica 40.000 mensagens sem verificação individual é uma aposta. Uma aposta com dados que seus usuários costumam considerar insubstituíveis.

Um artigo sobre as opções disponíveis para corrigir datas após migração explora as diferentes abordagens, incluindo seus respectivos limites.

O que o Redate.io faz nesse contexto

O Redate.io foi desenvolvido especificamente para esse caso: corrigir datas corrompidas por uma migração IMAP, em larga escala, sem risco para a integridade das mensagens.

O serviço se conecta diretamente às caixas afetadas (Google Workspace via delegação de domínio, Microsoft 365 via Azure AD, ou IMAP direto), escaneia gratuitamente as mensagens com datas incorretas e aplica um pipeline de correção proprietário que trata os casos limites documentados acima. Cada e-mail é verificado individualmente após a correção. Os originais ficam em uma pasta de backup visível por 30 dias.

O reconhecimento de padrões cobre centenas de assinaturas de ferramentas de migração conhecidas: BitTitan MigrationWiz, CloudM, imapsync, GSMMO, e suas variantes. A detecção é precisa: o Redate.io não toca em e-mails cuja data está correta.

O modelo de preços é simples: pagamento único por caixa de e-mail, sem assinatura. O escaneamento diagnóstico é gratuito, o que permite medir a extensão dos danos antes de decidir qualquer coisa.

Se você gerencia caixas afetadas por esse problema, este artigo sobre datas erradas no Outlook após migração detalha os sintomas mais comuns e como diferenciá-los de outras causas.

Pronto para medir a extensão do problema nas suas caixas? Inicie um escaneamento gratuito no Redate.io e veja exatamente quantos e-mails estão afetados antes de qualquer correção.

Artigos relacionados