Informações úteis sobre o cabeçalho IMAP não são exibidas

Estou usando funções padrão do IMAP para receber e-mails em PHP. Eu preciso acompanhar oMessage-ID (eReferences eIn-Reply-To) para cada mensagem para construir threads. Depois que esse sistema for implementado, eu quero que os usuários possam responder às mensagens em seu cliente de e-mail para adicionar uma mensagem a um encadeamento, mas na minha interface da web, as respostas não podem ser anexadas à postagem original porque não tenho aIn-Reply-To ID de qualquer cabeçalho de email. eu usariaIn-Reply-To ID para anexar a resposta à notificação que eu enviei para uma nova postagem, mas não consigo, porque não consigo os IDs. Se eu tivesse umIn-Reply-To cabeçalho, as mensagens podem ser agrupadas, pois há um segmento de IDs conectando-as.

Além disso, quero poder responder a qualquer mensagem que o usuário envie para o endereço de e-mail do servidor, caso tenha ocorrido um erro no envio deles ou algo assim.Message-ID da sua mensagem para que eu possa fazer com que oIn-Reply-To ID da mensagem que envio em resposta.

Eu não consigo valores paraMessage-IDnemIn-Reply-To mesmo que eles realmente tenham valores. (Vá para qualquer mensagem no Gmail, clique no menu suspenso ao lado do botão de resposta, clique em "mostrar original" e você verá que todas as informações do cabeçalho que estão faltando quando ligo para as funções IMAP estão lá, embora o Gmail não queira fornecer essas informações aos servidores IMAP.)

Eu tentei uma variedade de chamadas que supostamente obter as informações de cabeçalho (imap_headerinfo, imap_fetchheader, imap_fetch_overview), mas todos eles retornam a matriz de valores esparsos para as informações de cabeçalho que eu não preciso. Depois de executar

$this->mbox = imap_open('{imap.gmail.com:993/imap/ssl}', $email, $password);

Posso obter apenas alguns valores úteis do cabeçalho com qualquer uma dessas chamadas:

imap_header($this->getImapStream(), "1");
imap_fetch_overview($this->getImapStream(), "1");
imap_fetchheader($this->getImapStream(), "1");

Eu posso ver coisas comoSubject, To, Reply-To, e outros valores de cabeçalho, e eles são todos precisos, masMessage-ID, References, In-Reply-Toe outras informações de cabeçalho valiosas estão praticamente ausentes (em vez disso, os valores de matriz que os representam estão vazios em todos os casos).

Eu quase posso garantir que o problema não é com o código em si, como posso ver alguns valores nos cabeçalhos, e posso recuperar com sucesso os corpos das mensagens; é simplesmente como se o Google estivesse filtrando quais informações de cabeçalho eu posso ver.

Você pode perceber que eu tenho exatamente a mesma pergunta queesta página, mas foi sugerido que eu fiz a minha própria pergunta, e é isso que eu fiz.

EDITAR

Se alguém puder me dar uma maneira de responder a mensagens do meu servidor sem precisar recuperarMessage-ID da mensagem à qual estou respondendo, seria igualmente incrível.

EDIT 2

Eu listei oMessage-ID de cada mensagem na minha caixa de entrada muito grande e, pelo que eu vejo, cerca de 40% dos IDs realmente aparecem. Se eu executar o mesmo teste novamente, as mesmas mensagens mantêm suasMessage-IDs. Estou procurando um padrão entre as mensagens que mostram oMessage-ID mas há fortes evidências de um não padrão entre os tipos de mensagens.

Cada mensagem, na realidade, tem umMessage-ID (e verifiquei isso até para as mensagens cujos IDs não aparecem com as consultas IMAP), mas as funções IMAP só revelam o ID de algumas das mensagens.

questionAnswers(2)

yourAnswerToTheQuestion