Ticket #359 (closed defeito: fixed)
Problema horário da mensagem em relação ao TZ da mesma.
Reported by: | niltonneto | Owned by: | Nilton Neto, João Alfredo |
---|---|---|---|
Priority: | grave | Milestone: | |
Component: | ExpressoMail | Version: | 1.0 |
Severity: | Keywords: | ||
Cc: | WorkGroup: |
Description (last modified by niltonneto) (diff)
Na classe imap_functions, para ler a data/hora da mensagem é utilizado o atributo udate (timestamp) do objeto retornado pela função nativa imap_headerinfo(). É a única data/hora que se pode confiar, pois é um timestamp da data/hora que o servidor SMTP recebeu a mensagem. O problema é que quando mudamos o php.ini de GMT+3 para GMT+2, para que a classe phpmailer envie os emails com a hora correta (horário de verão), as mensagens recebidas antes do horário de verão são exibidas no ExpressoMail? com uma hora a mais. O correto é mostrar a hora em relação ao Timezone que vem no cabeçalho da mesma, e não com base no TZ definido no php.ini
O problema foi resolvido encapsulando a função nativa imap_headerinfo, na classe imap_functions, e adicionando ao atributo header->udate (timestamp) o timezone da própria mensagem. Além disso, todas as chamadas da função nativa date() que usam o atributo header->udate foram modificadas para gmdate(), para ignorar o TZ setado do php.ini.
Publicado na r. 535