Actie uitvoeren wanneer ik een mail naar een andere map verplaats

Status
Niet open voor verdere reacties.

silkeronsse

Gebruiker
Lid geworden
15 nov 2011
Berichten
15
De wondere wereld van het instellen van regels en snelle stappen, maakt de verwerking van mails toch wel een stuk handiger. Ik blijf echter op één ding zitten, waar ik geen idee heb hoe ik/of het mogelijk is om die te automatiseren: Een actie uitvoeren wanneer ik een mail verplaats naar een andere map.

Het zit zo dat ik een map 'actie' gebruik waarin de mails een categorie dragen ("thuis doen", "op werk doen") of gemarkeerd zijn als dringen rode vlagjes). Wanneer ik deze beëindig zijn sleep ik ze naar één van de archiefmappen. Nu zou ik graag hebben dat bij dat verslepen ook automatisch het vlagje/de categorie wordt verwijderd.

Regels worden bij mijn weten enkel uitgevoerd wanneer de mail aankomt (of handmatig). Snelle stappen zouden dan weer niet ideaal zijn omdat er net te veel archiefmappen zijn om voor elk apart een snelle stap te maken. Iemand een suggestie?

Ik gebruik Outlook 2013.
 
Laatst bewerkt:
Met de volgende code kun je ervoor zorgen dat er een functie wordt uitgevoerd als er een bericht in een bepaalde map wordt geplaatst.
Gebruik de functie GetOutlookFolderID() om de identificatie van de betreffende map op te halen en plaats deze achter de variabele InboxID in de functie Application_Startup().

In dit voorbeeld wordt op dat moment de functie ns_ItemAdd() aangeroepen. Deze kijkt of er een ongelezen mail is geplaatst. Je moet dan zelf even uitzoeken hoe je in plaats daarvan moet controleren op die vlaggetjes en hoe je deze dan aanpast. Je kunt dus per map een functie maken die wordt uitgevoerd zodra er een item in wordt geplaatst.


Code:
Option Explicit
Public WithEvents ns As Items
Public olInboxFolder As MAPIFolder
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 = "0000000074DAB329BC3CBB47B94716705C3EBD82C2820000"
    Set ns = Application.GetNamespace("MAPI").GetFolderFromID(InboxID).Items

End Sub

Private Sub ns_ItemAdd(ByVal item As Object)
    Dim MsgItem As Object

    On Local Error Resume Next
    For Each MsgItem In ns
        If MsgItem.UnRead = True Then
            MsgBox ("Nieuw bericht van " & item.SenderEmailAddress), vbInformation
            MsgItem.UnRead = False
        End If
    Next
    Set olInboxFolder = Nothing
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)
   Set olfolder = Nothing
   Set olApp = Nothing
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan