Curta de baixar o conteúdo real de cada mensagem, existe uma maneira de determinar se um e-mail em dois servidores IMAP é o mesmo?

3

O motivo é que estou tentando migrar e-mails entre dois servidores IMAP e quero garantir que, no caso de uma nova tentativa, uma mensagem duplicada não seja migrada novamente. O que eu gostaria é de consultar cada servidor IMAP para algo equivalente ao md5 do e-mail bruto, para que eu possa comparar quais e-mails foram migrados e quais não foram.

É algo assim possível no IMAP4? Eu vejo o UID, mas isso parece ser exclusivo para o servidor, não é realmente um identificador exclusivo do conteúdo.

    
por Ken Kinder 23.09.2011 / 21:40

3 respostas

2

IDs de mensagens devem ser únicos, mas isso não é garantido de forma alguma, e há muitos programas de correspondência quebrados no planeta. Se você tiver que ter certeza absoluta, verifique a soma de verificação, em outros casos, a ID da mensagem pode e deve ser suficiente.

    
por 23.09.2011 / 21:49
2

Ainda é necessário fazer um download decente, mas tente buscar BODY.PEEK[HEADER] da mensagem para obter apenas a seção de cabeçalho e compare o Message-ID header.

    
por 23.09.2011 / 21:50
1

Você provavelmente deseja verificar o valor do cabeçalho "Message-ID". Isso não é exatamente o mesmo que um MD5 de toda a mensagem, mas cada mensagem exclusiva deve ter um valor de ID exclusivo; Portanto, é seguro assumir que, se você vir um ID de mensagem no servidor de destino, a mensagem já foi copiada.

    
por 23.09.2011 / 21:48

Tags