Alguém te encaminha um arquivo chamado Proposta comercial.msg. Você clica duas vezes e o Windows pergunta com qual programa quer abrir. Você tenta o Bloco de Notas e aparece uma sopa de caracteres ilegíveis com algumas palavras soltas no meio.

Se fosse um .eml, teria aberto. A diferença entre os dois explica muita coisa sobre como o e-mail funciona por baixo.

A diferença, em uma frase

O .eml é texto. O .msg é um pacote.

O .eml é exatamente a mensagem como ela viaja entre servidores de e-mail: um arquivo de texto puro, em formato aberto. O .msg é um formato proprietário da Microsoft que embrulha a mensagem junto com propriedades internas do Outlook, num contêiner binário.

É por isso que um abre em qualquer lugar e o outro não.

O .eml por dentro

Renomeie um .eml para .txt, abra no Bloco de Notas e você vai ver algo assim no começo:

  • From: quem enviou;
  • To: e Cc: quem recebeu;
  • Subject: o assunto;
  • Date: a data de envio;
  • Message-ID: o identificador único daquela mensagem;
  • Received: a trilha de servidores por onde ela passou.

Esses campos não são invenção de cada programa: são definidos pela RFC 5322, a especificação do formato de mensagem da internet. Por isso ler assunto, remetente e data de um .eml é determinístico. Não tem palpite envolvido.

Depois dos cabeçalhos vem o corpo. E aqui aparece a primeira estranheza: em vez de texto limpo, é comum ver coisas como Voc=C3=AA pode confirmar at=C3=A9 sexta?.

Isso é quoted-printable, uma codificação prevista nas RFCs de MIME. E-mail nasceu num tempo em que só se podia trafegar caracteres de 7 bits, então acento vira código. O =C3=AA ali é o "ê". Anexos usam outra codificação, base64, que é por que um .eml com uma foto de 2 MB tem 2,7 MB: base64 infla o tamanho em cerca de um terço.

Quem gera .eml: Thunderbird, Apple Mail, Windows Mail, o Outlook na web e praticamente qualquer sistema que exporte e-mail.

O .msg por dentro, e por que ele não abre

O .msg não é texto. Ele é um contêiner OLE2, também chamado de Compound File Binary Format: um sistema de arquivos em miniatura dentro de um arquivo só, com pastas e fluxos de dados lá dentro.

É a mesma família dos antigos .doc e .xls, de antes do Office migrar para os formatos terminados em x. Se você abrir um .msg num editor hexadecimal, os primeiros oito bytes são sempre D0 CF 11 E0 A1 B1 1A E1. Essa assinatura é como um programa reconhece o formato.

Dentro do contêiner não está só a mensagem. Estão as propriedades MAPI, que são os campos internos do Outlook: se a mensagem foi lida, se está sinalizada, qual a categoria, a conta que a recebeu. Informação útil para o Outlook e sem uso fora dele.

E tem um detalhe que complica ainda mais: o corpo da mensagem pode estar guardado como RTF comprimido. Para chegar ao texto é preciso descomprimir e depois desencapsular o RTF, dois passos que nada além de um programa preparado faz.

Resumindo o motivo prático: o Windows não abre .msg sem Outlook porque o formato é um contêiner proprietário, não porque falta uma associação de arquivo. Renomear a extensão não resolve nada.

Como abrir cada um

Abrir um .eml

  • No computador: clique duplo costuma abrir no cliente de e-mail padrão. Se não abrir, arraste o arquivo para dentro da janela do Outlook ou do Thunderbird;
  • Só para ler o texto: renomeie para .txt e abra em qualquer editor. Funciona sempre, porque é texto puro;
  • No celular: no Android, o Gmail e a maioria dos gerenciadores de arquivos abrem direto. No iPhone, o Mail abre o anexo.

Abrir um .msg

  • Com Outlook: clique duplo e pronto;
  • Sem Outlook: o Mozilla Thunderbird abre o formato, com a ressalva de que em alguns casos ele não recupera os anexos;
  • Convertendo: transforme o .msg em .eml com um conversor e depois abra em qualquer cliente;
  • Visualizador online: funciona em um clique e tem um custo que a próxima seção trata.

O cuidado que quase nenhum tutorial menciona

"Abrir arquivo msg online" é uma das buscas mais comuns sobre o assunto, e é fácil entender por quê: resolve em dez segundos, sem instalar nada.

Vale pensar dois segundos no que você está subindo. Um arquivo de e-mail carrega:

  • o corpo inteiro da mensagem, com a thread e tudo que foi respondido antes;
  • o endereço de todo mundo que estava na conversa, inclusive quem estava em cópia oculta em algum ponto;
  • os anexos, embutidos no próprio arquivo;
  • os cabeçalhos Received:, que expõem nomes e endereços de servidores internos da sua empresa.

Foi por isso que montamos um abridor de .msg e .eml que roda dentro do navegador: o arquivo não sai do seu computador, e dá para conferir desligando a internet depois que a página carrega.

Para um e-mail pessoal, o risco é seu e você decide. Para uma proposta comercial, um contrato ou qualquer coisa com dado de cliente, isso normalmente esbarra na política de segurança da empresa, e com razão. Prefira o que roda na sua máquina.

É o mesmo raciocínio que aplicamos ao construir a importação de e-mail aqui: o arquivo é aberto no nosso próprio servidor e não é enviado para o provedor de IA, como está descrito na página de segurança.

Converter para PDF

Pedido recorrente, geralmente para anexar a um processo ou a uma prestação de contas.

Com Outlook, o caminho limpo é abrir a mensagem e usar Arquivo, Imprimir, escolhendo Microsoft Print to PDF como impressora. Sem Outlook, abra num leitor que entenda o formato e imprima para PDF a partir dele. Em qualquer dos dois, confira se os anexos foram junto: imprimir a mensagem não imprime o que estava anexado a ela.

O que aprendemos lendo esses arquivos em produção

Escrevemos um leitor dos dois formatos para o Pra Ontem, porque a pessoa arrasta o e-mail e espera a demanda organizada do outro lado. Quatro coisas que a documentação não conta:

1. A extensão mente

O tipo declarado pelo navegador não é confiável. No teste real, o .msg arrastado do Outlook chega com o tipo vazio, e o .eml arrastado do explorador de arquivos chega como message/rfc822. Se você confiar nisso, erra. O jeito certo é olhar os primeiros bytes: aquela assinatura D0 CF 11 E0 identifica o .msg, e a presença de cabeçalhos no topo identifica o .eml.

2. O assunto vem com camadas

Assunto de thread longa acumula prefixos: RES: ENC: RE: Orçamento. E eles variam por idioma e por cliente, entre RE, RES, ENC, FW, FWD, AW em alemão, VS e SV em nórdico. Limpar isso exige repetir a remoção até não sobrar nada, porque eles vêm encadeados.

3. Não existe padrão para separar as mensagens da thread

Esta foi a surpresa maior. Onde uma resposta termina e a anterior começa não é definido por nenhuma especificação: cada cliente de e-mail inventou o seu marcador, e ele muda com o idioma da interface.

O Outlook em português usa De: seguido de Enviada em:. Em inglês, From: seguido de Sent:. O Gmail usa Em ... escreveu:, ou On ... wrote:. Tem ainda a régua de sublinhados que o Outlook desenha, e o clássico ----- Mensagem original -----. As bibliotecas prontas do ramo só cobrem inglês.

4. Metade de um e-mail corporativo é ruído repetido

Aviso legal de confidencialidade tem entre 500 e 1.500 caracteres e se repete em cada mensagem da thread. Numa conversa de dez respostas, são até 15 mil caracteres de texto idêntico.

Pior que ele é a faixa que o filtro de segurança da empresa prega no topo, do tipo "esta mensagem é de remetente externo, não digite sua senha". Ela fica exatamente onde alguém procura o assunto da mensagem, e se repete a cada resposta citada. Sem tirar essa faixa, o título de uma demanda gerada a partir do e-mail vira "Atenção: mensagem de remetente externo".

Se você já se perguntou por que um e-mail simples de trabalho ocupa tanto espaço e é tão difícil de ler rápido, são essas quatro coisas somadas.

Onde o Pra Ontem entra nisso

Se o que você precisa é só ler o arquivo, as seções acima resolvem e não há por que instalar mais nada.

Se o que você precisa é fazer alguma coisa com o que está escrito nele, é aí que entramos. Você arrasta o .eml ou o .msg para dentro do aplicativo e a IA devolve a demanda com o que fazer, o prazo, a prioridade e quem pediu. Uma thread com três pedidos no meio vira três demandas, já sem o aviso legal e sem a faixa do filtro de segurança.

Vale o mesmo aviso de sempre: o arraste direto funciona no Outlook clássico, e no novo Outlook é preciso salvar a mensagem como arquivo antes. Os detalhes dos caminhos nativos estão em transformar e-mail em tarefa no Outlook, e o método que vale para qualquer canal está em como transformar e-mail em tarefa sem esquecer pedidos.

Para o quadro maior, de como a entrada do pedido se encaixa num processo inteiro, o guia de como organizar as tarefas do trabalho reúne as quatro etapas.

Resumindo

  • O .eml é texto puro em formato aberto, definido pela RFC 5322. Renomeie para .txt e você lê tudo;
  • O .msg é um contêiner binário proprietário da Microsoft, da mesma família do .doc antigo, e começa sempre com os bytes D0 CF 11 E0 A1 B1 1A E1;
  • Renomear um .msg não adianta: o conteúdo continua binário;
  • Sem Outlook, os caminhos são Thunderbird, converter para .eml ou um visualizador online;
  • O visualizador online sobe para um terceiro o corpo, os endereços de todos, os anexos e os servidores internos da sua empresa. Pense antes com e-mail de trabalho;
  • O acento aparece como =C3=AA por causa do quoted-printable, e anexos incham o arquivo em um terço por causa do base64.

Arraste o e-mail e receba a demanda pronta

O Pra Ontem lê o .eml e o .msg no nosso servidor, separa os pedidos da thread e devolve cada um com prazo, prioridade e quem pediu. Colar o texto da mensagem é ilimitado no plano grátis, sem cartão.

Criar conta grátis

Sem compromisso. Cancele quando quiser.