exclusividade de UID de emails IMAP

8

Em nosso sistema interno de webmail, gostaríamos de anexar notas e contatos a determinados e-mails. Para fazer isso, temos que acompanhar todos os e-mails no nosso servidor IMAP.

Infelizmente, o padrão IMAP não impõe a exclusividade do UID de um email em uma caixa de correio (apenas em subpastas). Existe alguma ferramenta / servidor IMAP que gera UIDs verdadeiramente únicos? Ou existe alguma outra maneira de identificar cada correspondência? (o campo de cabeçalho Message-ID não é único, pois alguns e-mails não contêm tal campo).

Recursos adicionais: ID exclusivo no protocolo IMAP - Limilabs.com

    
por SecStone 30.08.2012 / 11:21

2 respostas

9

Uma tupla de (nome da pasta, pasta UIDVALIDITY, UID da mensagem) distingue uma mensagem de todas as outras em uma conta IMAP. Para qualquer mensagem, essa tupla pode mudar entre as sessões, portanto, você pode querer rastrear sua ID de mensagem como um backup, caso isso aconteça.

Sim, é realmente irritante.

    
por 26.05.2015 / 22:57
5

Não sei o que você quer dizer quando diz que os UIDs não são exclusivos em uma caixa de correio, apenas em subpastas. Por subpastas, você quer dizer algo diferente de INBOX? De qualquer forma, parece errado. Os UIDs são de fato exclusivos dentro de cada pasta e não importa que seja INBOX ou qualquer outra pasta.

O que pode acontecer é que os UIDs podem mudar entre as sessões. Geralmente isso acontece se o servidor IMAP perder seus índices e precisar reconstruí-los ou se o email for migrado de um servidor IMAP para outro, etc ... Se isso acontecer, você obviamente perderá todas as associações entre emails e dados extras (notas ou contatos).

Você pode confiar nisto: um UID nunca se referirá de repente a uma mensagem diferente. Ele permanecerá válido e se referirá à mesma mensagem a que sempre se refere, senão ficará inválido.

Você pode querer verificar como seu servidor IMAP específico gera e mantém UIDs. Servidores IMAP diferentes fazem promessas diferentes sobre a persistência dos valores de UID. Mesmo dentro de um servidor IMAP, ele pode variar dependendo de qual formato de caixa de correio está em uso. Por exemplo, com o Dovecot, espere UIDs menos frágeis com mdbox do que com mbox ou Maildir porque os metadados são mais integrados aos e-mails reais com mdbox.

Sugiro usar UIDs para se referir a mensagens no servidor IMAP, com Message-ID como backup. Message-ID não é tão bom porque duplicatas são possíveis e (para a maioria dos servidores IMAP) pesquisar por Message-ID pode ser mais lento, mas é melhor do que perder a faixa das mensagens completamente.

    
por 31.08.2012 / 02:35

Tags