VBOffice

Send Delay

See how to defer the delivery of your emails. Instead of sending immediately, you could send your emails, for instance, in the evening at six o'clock.

Last modified: 2016/12/01 | Accessed: 28.386  | #163
◀ Previous sample Next sample ▶

Content

ReplyAll ReplyAll
ReplyAll alerts you before unintentionally replying all, or if you are a confidential BCC recipient of the e-mail.

Send Every Email in the Evening

This sample sends every email on the evening of the same day at six o'clock.

It is necessary for this sample, as well as for the other following samples, that Outlook is still running when the email should be sent.


tip  How to add macros to Outlook
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  Dim Mail As Outlook.MailItem
  If TypeOf Item Is Outlook.MailItem Then
    Set Mail = Item
    Mail.DeferredDeliveryTime = Date & " 06:00 PM"
  End If
End Sub

Send Emails With a Certain Subject The Next Monday

This sample sends every email with a certain subject the next Monday at 8 o'clock in the morning.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  Dim Mail As Outlook.MailItem
  If TypeOf Item Is Outlook.MailItem Then
    Set Mail = Item
    If Mail.Subject = "sample" Then
      Mail.DeferredDeliveryTime = GetNextWeekday(vbMonday) & " 08:00 AM"
    End If
  End If
End Sub

Private Function GetNextWeekday(ByVal DayOfWeek As VbDayOfWeek) As Date
  Dim diff As Long
  diff = DayOfWeek - Weekday(Date, vbSunday)
  If diff > 0 Then
    GetNextWeekday = DateAdd("d", diff, Date)
  Else
    GetNextWeekday = DateAdd("d", 7 + diff, Date)
  End If
End Function
Category-Manager Category-Manager
With Category-Manager you can group your Outlook categories, share them with other users, filter a folder by category, automatically categorize new emails, and more. You can use the Addin even for IMAP.

Send Emails With a Certain Category in the Morning of the Next Business Day

This sample sends every email with a certain category assigned in the morning of the next business day. So if you click on Send on a Friday, the email will be sent the next Monday.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  Dim Mail As Outlook.MailItem
  If TypeOf Item Is Outlook.MailItem Then
    Set Mail = Item
    If Mail.Categories = "sample" Then
      Mail.DeferredDeliveryTime = GetNextWorkday(1) & " 08:00 AM"
    End If
  End If
End Sub

Private Function GetNextWorkday(ByVal MinDaysOffset As Long) As Date
  Dim d As Date
  d = DateAdd("d", MinDaysOffset, Date)
  Select Case Weekday(d, vbMonday)
  Case 6: d = DateAdd("d", 2, d)
  Case 7: d = DateAdd("d", 1, d)
  End Select
  GetNextWorkday = d
End Function
SAM SAM
Determine the "identity" of your emails. Set with SAM the sender and the folder folder for sent items with the help of rules.
email  Send a message