Ticket #737 (new defeito)
Ao desanexar uma mensagem os flags não estão sendo mantidos e a data está errada
Reported by: | eduardoalex | Owned by: | zapa |
---|---|---|---|
Priority: | média | Milestone: | Backlog do Produto |
Component: | ExpressoMail | Version: | |
Severity: | média | Keywords: | |
Cc: | WorkGroup: |
Description
Os flags de lido, nao lido, importante, etc não estão sendo mantidos ao desanexar uma mensagem. A data também não está sendo atribuída de forma correta.
Attachments
Change History
comment:2 Changed 14 years ago by valmir.sena
O problema acontece porque é copiada a mensagem para uma nova, mas os flags estão relacionados ao código da mensagem anterior no arquivo cyrus.index e a data da mensagem passada para o imap é a data do arquivo da mensagem no sistema de arquivos, como na mensagem nova é criado um novo arquivo a mesma fica com a data em que foi desanexada.
comment:3 Changed 14 years ago by valmir.sena
Complentando,
Para salvar os flags os mesmos os mesmos não são obtidos da funcão usando a função imap_fetchheader, e por isso não são salvos. Para salvar os flags, os mesmos devem ser lidos da mensagem original com a função get_header($msg_number) do próprio expressoMail e serem salvos na nova mensagem com a função imap_setflag_full do php. Já a data da mensagem apresentada é a data do arquivo da mensagem que o cyrus salvou no arquivo cyrus.index no momento da criação da mensagem.
comment:4 Changed 14 years ago by amuller
No PHP 5.3.2 foi adicionado suporte a INTERNALDATE ao imap_append. O que resolve o problema do desanexar.
comment:6 Changed 14 years ago by amuller
commit r2905 arruma o problema das flags outros campos do header e ainda adiciona o campo X-Expresso-Modified no header para fins de auditoria.
comment:8 Changed 14 years ago by amuller
r2928 testei no PHP 5.3.2 e funcionou perfeito, com data, flags e etc iguais a msg original.
comment:9 Changed 13 years ago by eduardoalex
- Severity set to média
- Milestone changed from Expresso 2.2 to Expresso 3.0
comment:10 Changed 13 years ago by niltonneto
Eduardo, Diogenes, Rodrigo: Acho importante replicarmos essa correção para o Branch 2.2. Assim já deixaríamos essa parte do remover anexo "redondinha" para versões >= PHP 5.3.2. Sei que não temos previsão para homologação do Expresso na 5.3, mas já pouparia esse trabalho. O que vocês acham?
comment:11 Changed 13 years ago by rodsouza
Não tenho conhecimento da real situação de tal funcionalidade, entretanto sou totalmente contra deixar o e-mail como se fosse o original pois viola a integridade e credibilidade, e o fato primordial é que no futuro jamais terá um hitórico do que foi feito.
Porém o fato do PHP vide: http://www.expressolivre.org/html/modules/newbb/viewtopic.php?post_id=11973&topic_id=1874&forum=5#forumpost11973
comment:12 Changed 13 years ago by niltonneto
Ah sim Rodrigo. Eu também concordo com vc. A solução mais correta seria apenas remover o anexo, mas temos essa deficiência na extensão nativa php-imap.
comment:13 Changed 13 years ago by rodsouza
Mesmo sendo contra tal funcionalidade, já que a mesma foi adotada então deveria ser inserido um cabeçalho que indica-se a remoção e que no início do corpo do e-mail uma indicação que existiu um anexo.
Essa funcionalidade não pudemos utilizar até hoje aqui em produção devido a não conservação do cabeçalho original da mensagem e suas flags. Infelizmente, também não encontramos nenhum meio de corrigir isso. Alguém teve alguma idéia?