outlook

🧩 Syntax:
Sub SendHourlyEmails()
    Dim startTime As Date
    Dim endTime As Date
    Dim intervalMinutes As Integer
    Dim currTime As Date
    Dim draftFolder As Outlook.MAPIFolder
    Dim draftItems As Outlook.Items
    Dim draft As Outlook.MailItem
    Dim draftCount As Integer
    Dim sentCount As Integer
    
    ' Set the start time, end time, and interval in minutes
    startTime = DateSerial(Year(Now()), Month(Now()), Day(Now())) + TimeSerial(22, 0, 0) ' 10 PM
    endTime = DateSerial(Year(Now()), Month(Now()), Day(Now()) + 1) + TimeSerial(5, 0, 0) ' 5 AM of the next day
    intervalMinutes = 60 ' 60 minutes
    
    ' Calculate the current time
    currTime = Now
    If currTime < startTime Then
        Application.Wait startTime ' Wait until the start time if the current time is before 10 PM
    End If
    
    sentCount = 0
    
    ' Retrieve drafts from the drafts folder
    Set draftFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderDrafts)
    Set draftItems = draftFolder.Items
    
    ' Count the number of draft emails that contain "Dominick"
    For Each draft In draftItems
        If draft.Class = olMail Then
            If InStr(1, draft.Body, "Dominick", vbTextCompare) > 0 Then
                draftCount = draftCount + 1
            End If
        End If
    Next draft
    
    ' Loop through the drafts and send them at the designated intervals if they contain "Dominick"
    For Each draft In draftItems
        If draft.Class = olMail Then
            If draft.Sent = False And InStr(1, draft.Body, "Dominick", vbTextCompare) > 0 Then
                draft.DeferredDeliveryTime = currTime
                draft.Send
                
                sentCount = sentCount + 1
                
                ' Wait for the interval before sending the next email
                If sentCount < draftCount Then
                    Application.Wait Now + TimeSerial(0, intervalMinutes, 0)
                    currTime = currTime + TimeSerial(1, 0, 0) ' Add 1 hour to the current time
                End If
            End If
        End If
    Next draft
End Sub