msgbox bij nieuw bericht in outlook - vba code

Status
Niet open voor verdere reacties.

ludo9032

Gebruiker
Lid geworden
10 dec 2010
Berichten
12
Hallo

Op het werk gebruik ik outlook. Iedereen heeft zijn persoonlijke inbox en een gemeenschappelijke mailbox.

Heeft iemand code om een msgbox te laten verschijnen als er een nieuw bericht komt in de gemeenschappelijke mailbox?

Private Sub myOlApp_NewMail() ...........................

Groeten

ludo9032
 
Daar kun je dit voor gebruiken. Lees even het commentaar dat beschrijft hoe je de juiste FolderID krijgt.
Ik gebruik dit zelf om een bericht te krijgen als er een mail in de Spambox binnenkomt zodat ik kan controleren of dat terecht is.

Code:
Option Explicit
Public WithEvents sp As Items
Public InboxID As String

Private Sub Application_Startup()
    ' Deze functie wordt aangeroepen wanneer Outlook start
    ' Na evt. wijzigingen cursor hierin plaatsen en op F5 drukken om uit te voeren, of Outlook herstarten
    ' Gebruik de functie GetOutlookFolderID om onderstaande ID's te verkrijgen
    ' Deze verschillen per account en machine
    InboxID = "00000000F610F02F768A24409CB439CBE875E8C101004571A37BC60ED748B89AC5149E9C49270000000669AD0000"
    Set sp = Application.GetNamespace("MAPI").GetFolderFromID(InboxID).Items
End Sub

Private Sub sp_ItemAdd(ByVal item As Object)
    Dim msgItem As Object
   
    On Local Error Resume Next
    For Each msgItem In sp
        If msgItem.UnRead = True Then
            MsgBox ("Nieuw bericht van: " & item.SenderEmailAddress), vbInformation
            msgItem.UnRead = False
        End If
    Next
    
End Sub

Private Sub GetOutlookFolderID()
   Dim olfolder As Outlook.MAPIFolder
   Dim olApp As Outlook.Application
   Set olApp = CreateObject("Outlook.Application")
   Set olfolder = olApp.GetNamespace("MAPI").PickFolder
   ' olfolder.Display
   Debug.Print (olfolder.EntryID)
   Debug.Print (olfolder.Name)
   Set olfolder = Nothing
   Set olApp = Nothing
End Sub
 
Laatst bewerkt:
Prima, ik lees het wel :)
 
Van de code die je me hebt gegeven heb ik een functie gemaakt. Ik wil dus een msgbox enkel als er een nieuw bericht in een bepaalde shared folder toekomt.
Ik heb dit getest en voor mijn standaard inbox werkt dit!:)
Als ik nu echter de gegevens doorgeef van de shared folder, werkt de code maar als er een nieuw bericht komt krijg ik geen msgbox.

De entryID met .Pickfolder en met de parameters doorgeven is identiek.
Zal nog eens proberen.
Code:
Public Function GetOutlookFolderID(ByVal strFolderA As String, strFolderB As String) As String 'strFolderA = shared mailbox - strFolderB (hier) = Postvak IN van de shared mailbox

    Dim olfolder As Outlook.MAPIFolder

    Dim olApp As Outlook.Application

    Set olApp = CreateObject("Outlook.Application")

    'Set olfolder = olApp.GetNamespace("MAPI").PickFolder 'keuze om  folder te kiezen

    'Debug.Print (olfolder.EntryID)

 
    Set olfolder = olApp.GetNamespace("MAPI").Folders.item(strFolderA)

    Debug.Print (olfolder.EntryID)

   GetOutlookFolderID = (olfolder.Folders(strFolderB).EntryID)

    Debug.Print (olfolder.Folders(strFolderB).EntryID)
  

    Set olfolder = Nothing

    Set olApp = Nothing

    Debug.Print (GetOutlookFolderID)
  

End Function
 
Laatst bewerkt:
De code die je hebt geplaatst is alleen de routine om de FolderID op te halen en niet de eigenlijke routine voor het tonen van de melding.
De FolderID verschilt per folder dus je moet wel de juiste gebruiken.
 
@ludo:
Doe de lezer een plezier en maak je code op met de CODE knop. Zie voorbeeld code van edmoor, die er keurig uitziet. Dus graag met terugwerkende kracht aanpassen.
 
Ok dan :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan