Als Outlook inbox meer dan 10 berichten heeft, stuur bericht

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • mbd-tweakers
  • Registratie: Oktober 2017
  • Laatst online: 22-05 11:05
Hallo allemaal.

Ik zou graag een regel of VBA willen gebruiken om het volgende probleem te tekkelen

Ik heb een email-account waarin e-mails automatisch verwerkt en verplaatst worden naar een andere map.
Als deze verwerking vastloopt loopt de inbox vol.
Als er in de inbox 15 mails of meer staan (dit kan binnen 1 uur gebeuren maar kan ook 1 of 2 dagen duren), moet er een mailtje uitgaan met de waarschuwing dat er meer dan 15 mails staan. Hoe kan ik dit verwezenlijken ?

Regels werken alleen met aantal dagen terwijl ik aantal mails nodig heb.

Ik gebruik Outlook 2016 (Office 365) en Windows 10
Outlook is ingesteld als Exchange.

Jullie hulp wordt zeer gewaardeerd.
Dank daarvoor _/-\o_

Maarten

[ Voor 17% gewijzigd door mbd-tweakers op 24-02-2020 14:26 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

mbd-tweakers schreef op maandag 24 februari 2020 @ 14:22:
Als er in de inbox 15 mails of meer staan (dit kan binnen 1 uur gebeuren maar kan ook 1 of 2 dagen duren), moet er een mailtje uitgaan met de waarschuwing dat er meer dan 15 mails staan. Hoe kan ik dit verwezenlijken ?
Je kunt het aantal mails inderdaad uitlezen met VBA. Ik stel dan wel voor dat je zelf een eerste versie van de code probeert samen te stellen. Nu lijk je een kant-en-klaar stuk code te willen en da's niet de bedoeling op GoT ;) Sowieso moet je echt de code snappen voor je het uitvoert. Anders gaat een grappenmaker nog je mailbox legen of gaat die spammen uit jouw mailbox. Lijkt me ook niet de bedoeling.

Als je nog nul ervaring hebt met VBA in Outlook, doe eerst wat basic tutorials. Check dan iets als zoeken bij google naar 'VBA count mails' voor ideeen. Als je een concept hebt, denken we graag mee.

Edit: vergeet niet om te onthouden wat de vorige mail was, immers zal je niet ook een mail willen bij 16, 17, 18, 19 etc mails. Ook: afhankelijk van je onderliggende doel is misschien een ander tool dan mail beter. Zoals een licht CRM systeem.

[ Voor 14% gewijzigd door F_J_K op 24-02-2020 18:34 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • mbd-tweakers
  • Registratie: Oktober 2017
  • Laatst online: 22-05 11:05
Ik heb wel wat ervaring met VBA (meer voor Excel) maar totaal niet voor outlook.
Ik heb wel iets gevonden, maar dit is meer iets voor mijn eigen inbox.
Hoe kan ik dit instellen voor een geshared account waarvan ik de inbox wil laten uitlezen.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Private objInbox As Outlook.Folder
Private WithEvents objItems As Outlook.Items
Private lUnreadItemCount As Long

Private Sub Application_Startup()
    Set objInbox = Application.Session.GetDefaultFolder(olFolderInbox)
    Set objItems = objInbox.Items
 
    lUnreadItemCount = 0
    Call CountUnreadEmails(objInbox, lUnreadItemCount)
 
    'If there are more than 10 unread emails
    If lUnreadItemCount > 10 Then
       MsgBox "Too many unread emails in Inbox!" & vbCr & "Please deal with them as soon as possible!", vbExclamation + vbOKOnly, "Check Unread Emails"
    End If
End Sub

Private Sub objItems_ItemAdd(ByVal Item As Object)
    Call CountUnreadEmails(objInbox, lUnreadItemCount)
 
    lUnreadItemCount = 0
    If lUnreadItemCount > 10 Then
       MsgBox "Too many unread emails!" & vbCr & "Please deal with them as soon as possible!", vbExclamation + vbOKOnly, "Check Unread Emails"
    End If
End Sub

Private Sub CountUnreadEmails(ByVal objFolder As Outlook.Folder, ByRef lCount As Long)
    Dim objUnreadItems As Outlook.Items
    Dim objSubfolder As Outlook.Folder
 
    Set objUnreadItems = objFolder.Items.Restrict("[Unread] = True")
    lCount = objUnreadItems.count + lCount
 
    'Process all subfolders under Inbox recursively
    If objFolder.Folders.count > 0 Then
       For Each objSubfolder In objFolder.Folders
           Call CountUnreadEmails(objSubfolder, lCount)
       Next
    End If
End Sub

[ Voor 0% gewijzigd door F_J_K op 25-02-2020 14:41 . Reden: code tags ]


Acties:
  • 0 Henk 'm!

  • Tazzios
  • Registratie: November 2001
  • Nu online

Tazzios

..

iets met deze regel denk ik: 'Set objInbox = Application.Session.GetDefaultFolder(olFolderInbox)"

Acties:
  • 0 Henk 'm!

  • dukejan
  • Registratie: Juli 2009
  • Laatst online: 12-09 07:39
Als je Office365 gebruikt, kun je ook kijken naar Microsoft Power Automate. Daarin kan je een stroom maken die aan de ene kant jouw e-mailbox leest op het aantal ongelezen berichten, en daarna een output doet naar een mobile app, of een andere mailbox.

Denk dat je wel zelf dit in elkaar moet knutselen en dit nog niet kant en klaar in Power Automate zit.

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Wat @Tazzios zegt, maar dat dus aanpassen naar de juiste shared inbox. Heb ik geen ervaring mee, maar zoeken bij google naar 'outlook vba shared inbox' lijkt te helpen, iets als https://superuser.com/que...x-in-outlook-2013/1035439.

En dan vervolgens niet unread lezen, maar any mail (en geen msgbox maar mail sturen). En zoals gezegd bijhouden wanneer voor het laatst gemaild, om te voorkomen dat je 100x een mail krijgt. (Of max enkele malen per dag laten lopen, dan is het vast niet erg).

Let bij Power automate wel even op de prijs..

Hoe dan ook is het zelf devven aan de orde ja. Let op dat je iedere regel code begrijpt voor het te runnen..
offtopic:
Edit: ik heb de quote met code aangepast naar code tags. Beter leesbaar.

[ Voor 13% gewijzigd door F_J_K op 25-02-2020 14:47 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)

Pagina: 1