Como posso listar todas as pastas em que um Item de Correio do Outlook está armazenado usando o VBA?

0

Eu importei meu Gmail para o Outlook usando o IMAP e agora estou executando alguns scripts de relatórios do VBA. Os marcadores do Gmail foram convertidos em pastas no Outlook e os itens de e-mail com vários marcadores do Gmail parecem ser armazenados em várias pastas no Outlook. Eu estou tentando retornar a propriedade mailitem.parent, mas ele só lista o pai de item de email ativo. Ie. Se eu estiver pesquisando na pasta "Testando categorias", ele retornará apenas "Categorias de teste", mesmo que essas mensagens também estejam na Caixa de entrada e em outras pastas.

For Each olItem In olFolder.Items
On Error Resume Next
If olItem.MessageClass = "IPM.Note" Then
Set olMail = olItem
Debug.Print olMail.Parent
...
    
por Mdh111 21.11.2017 / 18:27

1 resposta

1

O IMAP do Gmail é bastante complexo. Como o Gmail não suporta pastas (como exige o IMAP), ele imita as pastas fornecendo nomes de rótulos a clientes de email (como o Outlook). Quando você tem vários rótulos no email, ele realmente fornece uma cópia da mensagem de email para cada "pasta" do IMAPI. Do ponto de vista do Outlook e de qualquer outro cliente IMAP, essas mensagens são diferentes. Se você excluir o e-mail em uma dessas "pastas", o Gmail apenas removerá o marcador dele. E se você for modificar o e-mail (digamos, editar assunto) em uma das "pastas", o Gmail criará a cópia real do e-mail e você a verá no gmail.com. O único identificador exclusivo que esses emails têm em comum é a propriedade MAPI PR_INTERNET_MESSAGE_ID ( link ).

Então, se você realmente deseja coletar todos os marcadores do Gmail de um determinado e-mail, é necessário recuperar o link property usando PropertyAccessor e, em seguida, pesquisa em toda a caixa de correio por esse valor de propriedade para localizar os emails correspondentes. E mesmo assim você pode não obter todos os resultados porque nem todos os marcadores do Gmail podem ser acessados usando o IMAP e nem todas as pastas do IMAP podem ser sincronizadas.

    
por 22.11.2017 / 17:17