14. juli 2004 - 13:19Der er
14 kommentarer og 1 løsning
Outlook UnRead = False
Hej
Jeg har en lille VB6 applikation der læser alle ulæste mails i Outlook indbakken og sætter dernæst den ulæste mail til at være læst.
Når jeg (ikke applikationen) åbner en mail(Som popup) i min indbakke sættes denne mail automatisk til at være læst. Minimerer jeg den åbne mail og sætter den til at være ulæst i Outlook opstår der en fejl i applikationen. Applikationen kan sagtens læse mailen, men den kan ikke angive den læste mail som værende læst i Outlook, fordi at mailen samtidig er åben i et andet vindue.
Hvad kan jeg gøre ????
Her er noget kode:
Set wMapiFolder = wNameSpace.GetFolderFromID(wBox.EntryID)
For Each wMail In wMapiFolder.Items If wMail.UnRead = True Then wMail.UnRead = False 'Her sætter jeg mailen til at være ulæst. End If Next
1 kræver at du kan detektere at mailen er åbnet. Ved ikke om mail objektet understøtter det 2 kræver vel bare at du hånterer en exception - det ville jeg gøre, da du alligevel ikke kan gøre noget ved situationen (hvis du da ikke skal til at lukke mailen osv.)
jpvj >> Det er problemet. Der sker ingen ting. Min applikationen læser mailen og går videre til den næste ulæste mail. Problemet er at den ikke kan sætte mailen til at være læst, fordi mailen også er åben i et andet vindue.
Har fundet en løsning på problemet. MAPI objektet har en egenskab der hedder UnReadItemCount. Ved hjælp af denne kan man se om en mail er blevet markeret som læst. Se eksempel:
For Each wMail In wMapiFolder.Items wCount = wMapiFolder.UnReadItemCount If wMail.UnRead = True Then wMail.UnRead = False 'Her sætter jeg mailen til at være ulæst. If wCount = wMapiFolder.UnReadItemCount Then MsgBox "Mailen er allerede åben. Luk venligst denne og forsøg igen." Exit For End If End If Next
Det er korrekt, men den mulighed havde jeg allerede udset mig inden jeg lagde spørgsmålet ud på eksperten. Havde du kommet med en konkret løsning, som ovenstående, så havde du også fået gevinsten ;-)
Dit eksempel taler for sig selv. Jeg spekulerede bare over, om en åben e-mail, er den eneste mulighed for, at du ikke kan sætte den "unread"? Jf. din Msgbox-tekst antager du det i hver fald.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.