Avatar billede lizardine Nybegynder
14. juli 2004 - 13:19 Der 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
Avatar billede jpvj Nybegynder
14. juli 2004 - 13:33 #1
Uden at blive teknisk har du 2 muligheder:

1) Undgå at fejlen opstår
2) Håndter fejlen

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.)
Avatar billede terry Ekspert
14. juli 2004 - 13:36 #2
Set wMapiFolder = wNameSpace.GetFolderFromID(wBox.EntryID)

On Error resume Next
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
Avatar billede lizardine Nybegynder
14. juli 2004 - 13:37 #3
jpvj >> Ad. 1) Jeg ved desværre heller ikke om objektet understøtter det.
Ad. 2) Hvordan håndtere jeg en exception ???
Avatar billede lizardine Nybegynder
14. juli 2004 - 13:39 #4
Terry >> Der sker ikke en fejl. wMail objektet sætter bare ikke mail'en til at være ulæst.
Avatar billede jpvj Nybegynder
14. juli 2004 - 13:54 #5
lizarine> ... opstår der en fejl i applikationen.

Forklar venligst hvad der sker...
Avatar billede lizardine Nybegynder
14. juli 2004 - 14:04 #6
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.
Avatar billede martin_moth Mester
14. juli 2004 - 14:13 #7
Men der kommer altså ingen fejl - den gør bare ikke hvad du beder den om. Eller?
Avatar billede martin_moth Mester
14. juli 2004 - 14:13 #8
Hvilpe properties har wMail - er der f.eks. en der hedder "open" eller noget i den stil?
Avatar billede terry Ekspert
14. juli 2004 - 14:17 #9
14/07-2004 13:39:32
Isnt this obvious? The mail is open and therefore being read!
Avatar billede lizardine Nybegynder
14. juli 2004 - 14:21 #10
martin_moth >> Der opstår ingen fejl. wMail objektet har desværre ikke en egenskab der hedder open eller noget der minder om.
Avatar billede lizardine Nybegynder
14. juli 2004 - 14:29 #11
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
Avatar billede lizardine Nybegynder
14. juli 2004 - 15:07 #12
Svar.
Avatar billede jpvj Nybegynder
14. juli 2004 - 15:12 #13
Var det ikke det jeg beskrev generelt som mulighed 1 :-)
Avatar billede lizardine Nybegynder
14. juli 2004 - 15:30 #14
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 ;-)
Avatar billede jpvj Nybegynder
16. juli 2004 - 01:13 #15
lizardine> Helt ok.

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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester