Analisar o histórico de download de mensagens de uma conta POP3
Este tópico descreve como a estrutura POP3 BLOB que representa o histórico de download da mensagem de uma conta POP3 e identifica mensagens baixadas ou excluídas nessa conta.
Por que analisar o histórico de download da mensagem?
O provedor de protocolo POP (Post Office) para o Outlook permite aos usuários recuperarem e baixarem novas mensagens de email em seu dispositivo local e posteriormente sair ou excluir essas mensagens de email no servidor de email. Quando o cliente de email verifica se há novas mensagens baixar, deve ser capazes de identificar e baixar as novas mensagens para essa caixa de entrada. O cliente de email faz isso primeiramente usando o comando UIDL (lista de ID exclusivo) para obter um mapa de cada mensagem que já foi enviada para essa caixa de entrada para um identificador exclusivo (UID). O cliente também obtém o histórico de download de mensagem para mensagens baixadas ou excluídas na caixa de entrada desse cliente. Usando o mapa de mensagem UID e o histórico de download, o cliente pode identificar mensagens ausentes do histórico como novas e fazer o download em seguida.
Para obter histórico de download de mensagem para a caixa de entrada:
Siga as etapas localizar o histórico de download da mensagem para uma conta POP3 para localizar a propriedadePidTagAttachDataBinary que contém um objeto binário grande (BLOB) que representa o histórico de mensagem de uma conta POP3.
Leia este tópico que descreve a estrutura do BLOB e mostra um exemplo de BLOBs para identificar mensagens baixadas ou excluídas da caixa de entrada da conta POP3.
Estrutura de BLOB POP
Estrutura POP BLOBs, conforme descrito na tabela 1, comece com dois campos versão e contagemseguido pelo número decontagemdas marcas de recurso, cada uma delas é terminada por caractere nulo.
Tabela 1. Estrutura do BLOB que representa o histórico de download de mensagens de uma conta POP3
Campo de BLOB | Tamanho | Descrição |
---|---|---|
Versão |
2 bytes |
Deve ser 3 (PBLOB_VERSION_NUM). |
Contagem |
2 bytes |
O número das marcas de recurso neste BLOB. |
Marca de recursos |
Variável |
Terminada em 0 ou por caractere nulo ou UTF-8 cadeias de caracteres que codificam as marcas de recursos. O número de cadeias de caracteres terminada por caractere nulo deve corresponder com a contagem. |
Cada marca de recurso especifica a operação que é aplicada a uma mensagem, alguns metadados de data e hora sobre a operação e também codifica o UID da mensagem. O formato de uma cadeia de marca de recursos funciona da seguinte forma e isso será explicado em detalhes na tabela 2.
Ocyyyymmddhhmmssuuu...
Tabela 2. Estrutura de uma marca de recurso
Campo em uma marca de recursos | Tamanho | Descrição |
---|---|---|
O |
1 caractere |
Executar a operação na mensagem de email. O valor deve ser "+", "-", ou "&", o que indica uma operação de obtenção, exclusão ou exclusão bem-sucedida, respectivamente. |
c |
1 caractere |
Parte do conteúdo da mensagem envolvido na operação. O valor deve ser "", "h" ou "b", que indica o conteúdo de nenhuma, cabeçalho ou corpo, respectivamente. |
yyyy |
4 caracteres |
Os quatro dígitos do ano da operação. |
MM |
2 caracteres |
Os dois dígitos do mês da operação. |
dd |
2 caracteres |
Os dois dígitos do dia da operação. |
hh |
2 caracteres |
Os dois dígitos da hora da operação. |
mm |
2 caracteres |
Os dois dígitos do minuto da operação. |
ss |
2 caracteres |
Os dois dígitos do segundo da operação. |
uuu… |
Tamanho variável |
UID codificado de uma mensagem. |
Exemplo
Tabela 1. Mostra um exemplo de BLOB que representa o histórico de download de mensagem de uma conta POP.
Figura 1. Estrutura blob de exemplo para o histórico de download de mensagens de uma conta POP3
Com base na estrutura descrita na tabela 1 e na tabela 2, este BLOB representa o histórico de download de 23 mensagens de email.
Para analisar o UID bruto em cada marca de recurso, esteja ciente de que o UID segue este codificação: caracteres em UID são essencialmente caracteres alfanuméricos e cada caractere não alfanumérico é precedido pelos caracteres ASCII "$" (0x24). Então, os caracteres ASCII $2d representam os caracteres não-alfanuméricos ",". A figura 2 mostra um exemplo da primeira conversão UID bruta na marca de recursos 1 para a representação ASCII e depois a conversão de caracteres não alfanuméricos precedidos por "$" para produzir UID real:
0BC535DB-EA63-11E1-A75C-00215AD7BB74
Figura 2. Convertendo a UID bruta em uma marca de recurso na UID da mensagem real
Para interpretar a marca de recurso 1 neste BLOB: a mensagem com o UID 0BC535DB-EA63-11E1-A75C-00215AD7BB74
foi recuperada com êxito em 6 de setembro de 2012, às 13:11:38.
Da mesma forma, você pode analisar as demais 22 marcas de recurso para aquele BLOB.