jensgebken
Goto Top

VBA Outlook Mails auslesen

Hallo Gemeinschaft,

vwerwende folgendes script für da Verarbeiten von Emails, die in einen bestimmten Ordner gelangen - gibt es eine Möglichkeit, dass ich zwei Ordner überwache?

Sub Application_NewMailEx(ByVal EntryIDCollection As String)

'On Error Resume Next  
Dim myFolder As Outlook.MAPIFolder
Dim myNameSpace As Outlook.NameSpace
Dim OLApp As New Outlook.Application
Dim msg As Outlook.MailItem
 
 Set myNameSpace = Application.GetNamespace("MAPI")  
 Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Booking")  
Set Application.ActiveExplorer.CurrentFolder = myFolder
Application.GetNamespace("MAPI").GetDefaultFolder (olFolderInbox)  

For Each msg In myFolder.Items
If msg.UnRead Then
.....

Content-Key: 7889449487

Url: https://administrator.de/contentid/7889449487

Printed on: May 1, 2024 at 23:05 o'clock

Mitglied: 7426148943
7426148943 Jul 18, 2023 updated at 15:30:13 (UTC)
Goto Top
Dein Fragenkontingent ist für diese Woche schon aufgebraucht, komm Freitag wieder.
Application_NewMailEx(ByVal EntryIDCollection As String)
Das erfasst eh schon alles was rein kommt ... RTFM
Outlook newMailex oder NewMail?

Zeppel.
Member: jensgebken
jensgebken Jul 19, 2023 at 09:56:22 (UTC)
Goto Top
Hallo zeppel - wie würdest du es machen, wenn dieses script nur emails bearbeitet, die im Ordner booking landen

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim varEntryIDs
    Dim objItem As Object, strBody As String
    Dim i As Integer
    
'mein Versuch um nur den Ordner booking zu überwachen  
     Set myNameSpace = Application.GetNamespace("MAPI")  
     Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Booking")  

Set Application.ActiveExplorer.CurrentFolder = myFolder
Application.GetNamespace("MAPI").GetDefaultFolder (olFolderInbox)  
    varEntryIDs = Split(EntryIDCollection, ",")  
    Set regex = CreateObject("vbscript.regexp")  
    regex.IgnoreCase = True
    For i = 0 To UBound(varEntryIDs)
        Set objItem = Application.Session.GetItemFromID(varEntryIDs(i))
        If objItem.Class = olMail Then
            Select Case objItem.BodyFormat
                Case olFormatHTML
                    strBody = objItem.HTMLBody
                Case olFormatRichText
                    strBody = objItem.RTFBody
                Case Else
                    strBody = objItem.Body
            End Select
            regex.Pattern = "Bugs Bunny"  
            If regex.Test(strBody) Then
                ' Successful match  
                objItem.Categories = "Disney"  
                objItem.Save
            Else
                ' Match attempt failed  
            End If
        End If
    Next
    Set regex = Nothing
End Sub