VBOffice

Senden verzögern

So verzögern Sie das Senden von Emails und senden Emails zu einem festgelegten Zeitpunkt, z.B. immer abends um 18 Uhr.

Zuletzt geändert: 01.12.2016 | Aufrufe: 7.562  | #163
◀ Vorheriges Beispiel Nächstes Beispiel ▶

Inhalt

Reporter Reporter
Mit dem Reporter erstellen Sie Berichte für Ihre Outlook Daten. Mit wenigen Klicks werden Werte aus Aufgaben, Terminen und dem Journal summiert.

Jede Email erst abends senden

Dieses Beispiel sendet jede Email am Abend des gleichen Tages um 18 Uhr.

Voraussetzung dafür, wie auch für alle folgenden Beispiele, ist, dass Outlook zum festgelegten Zeitpunkt noch läuft.


tip  So fügen Sie Makros in Outlook ein
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 & " 18:00"
  End If
End Sub

Emails mit einem bestimmten Betreff am folgenden Montag senden

Dieses Beispiel sendet jede Email, die einen bestimmten Betreff hat, am nächsten Montag um 8 Uhr.

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 = "Beispiel" Then
      Mail.DeferredDeliveryTime = GetNextWeekday(vbMonday) & " 08:00"
    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
ReplyAll ReplyAll
Mit diesem Addin für Outlook erhalten Sie in verschiedenen Situationen eine Warnung, bevor Sie auf eine Email versehentlich allen anderen Empfängern antworten.

Emails mit einer bestimmten Kategorie am Morgen des nächsten Arbeitstages senden

Dieses Beispiel sendet jede Email, der eine bestimmte Kategorie zugewiesen ist, am Morgen des nächsten Arbeitstages. Wenn Sie also an einem Freitag auf Senden klicken, dann wird die Email erst am folgenden Montag gesendet.

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 = "Beispiel" Then
      Mail.DeferredDeliveryTime = GetNextWorkday(1) & " 08:00"
    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
OLKeeper OLKeeper
Der OLKeeper verhindert zuverlässig, dass Sie Microsoft Outlook unbeabsichtigt schließen und so etwa wichtige Emails verpassen würden.
email  Senden Sie eine Nachricht