Avatar billede oleko Nybegynder
31. august 2002 - 10:46 Der er 6 kommentarer og
1 løsning

Hvordan får jeg fat i afsender af e-mail i Outlook.

Jeg er interesseret i at udtrække Outlook MailItem fra Indbakke, som er afsendt af nogle ganske bestemte brugere.
Det går ok med at få fat i mails fra Indbakken, men jeg kan ikke komme til at se, hvem afsenderen er. MailItem (Item) objektet indeholder tilsyneladende ikke en relevant property, der kan testes på.
Avatar billede kedde65 Praktikant
31. august 2002 - 11:25 #1
Det her er en måde t gøre det på

Private Sub Command1_Click()
    Dim Oapp As Outlook.Application, ind As MAPIFolder, indItems As Items, item As MailItem
    Set Oapp = New Outlook.Application
   
    Set ind = Oapp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
   
    Set indItems = ind.Items.Restrict("[SenderName]=Eksperten mailrobot")
   
    For Each item In indItems
        MsgBox item.SenderName
    Next
   
    Set Oapp = Nothing
End Sub

VH CK
Avatar billede oleko Nybegynder
31. august 2002 - 12:17 #2
Tak for det, men jeg vil gerne kunne få fat i og teste på afsenderens e-mail adresse. SenderName som du foreslår, giver navnet på afsenderen.
Avatar billede kedde65 Praktikant
31. august 2002 - 13:36 #3
Ja det er rigtigt, men jeg kan ikke rigtigt få den til at give mig adressen. Jeg skal dog nok lige arbejde videre med det, så du kan få et ordentligt svar :-)

VH CK
Avatar billede kedde65 Praktikant
31. august 2002 - 13:39 #4
Her kommer der en workaround på problemet...den holder nok ikke vand i byretten, men i en snæver vending kan det gå an :-)

Private Sub Command1_Click()
    Dim Oapp As Outlook.Application, ind As MAPIFolder, indItems As Items, item As MailItem
    Dim rep As MailItem
    Set Oapp = New Outlook.Application
   
    Set ind = Oapp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
   
    Set indItems = ind.Items.Restrict("[SenderName]=Eksperten mailrobot")
   
    For Each item In indItems
        Set rep = item.Reply
        MsgBox rep.Recipients(1).Address
        Set rep = Nothing
    Next
   
    Set Oapp = Nothing
End Sub

vh ck
Avatar billede kedde65 Praktikant
31. august 2002 - 14:50 #5
Puha - her kommer der så et eller andet der efter ca. 2 timers slid på nettet, samt søgen rundt i Outlook/exchange hjælpe filer ser ud til at kunn løse dit problem.

Private Sub Command1_Click()
    Dim ses As MAPI.Session, fld As MAPI.Messages
    Dim rec As MAPI.Recipient
    Dim item As MAPI.Message
    Set ses = New MAPI.Session
   
    ses.Logon , , False, False
   
    Set fld = ses.GetDefaultFolder(1).Messages
   
    For Each item In fld
        If item.Sender.Address = "mailrobot@eksperten.dk" Then
            MsgBox item.Sender.Name
        End If
    Next
   
    ses.Logoff
End Sub

du skal for at dette virker have en reference til Microsoft CDO 1.21 library.

VH CK
Avatar billede oleko Nybegynder
31. august 2002 - 15:58 #6
Jeg ville helst have en løsning, som fungerer med Outlooks objekt model, da det skal kunne køre på klienter uden videre uden ekstra komponenter.
Tak for din indsats.
Avatar billede kedde65 Praktikant
31. august 2002 - 16:16 #7
Det er meget simpelt for hvis du har Outlooks object model til rådighed så har du også automatisk CDO til rådighed. Det bliver installeret sammen med Outlook 2000 og derover.

VH CK
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