Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Outlook

Lesen Sie hier einige der besten Beiträge aus SmartTools Outlook Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Outlook.

Beitrag aus SmartTools Outlook Weekly

VBA-Lösung für sofortiges Senden trotz Regel mit zeitverzögertem E-Mail-Versand

Outlook 365 2024 2021 2019 2016 2013

FRAGE Sie hatten einen Tipp veröffentlicht, in dem es um einen zeitverzögerten E-Mail-Versand mit Hilfe einer Regel ging, und dazu bereits einen Nachtrag herausgebracht. Darin beschreiben Sie, wie eine E-Mail trotz verzögerter Zustellung sofort gesendet werden kann. Mich stört daran ein wenig, dass ich die im Postausgang abgelegte E-Mail erst öffnen und dann manuell verschiedene Einstellungen vornehmen muss, um den sofortigen Versand auszulösen. Lässt sich nicht ein Makro entwickeln, das diese Einstellungen setzt. Idealerweise muss ich für den Sofortversand im Postausgang nur die gewünschte E-Mail markieren und das Makro ausführen. Können Sie dafür eine Lösung anbieten?

T. Becker

ANTWORT Sie haben recht. Komfortabel ist es nicht, die Einstellungen für den sofortigen Versand und zum Aussetzen der Regelausführung jedes Mal manuell setzen zu müssen. Mit einem Makro lassen sich die Schritte tatsächlich automatisieren.

Bevor es an die Details geht, hier noch einmal kurz die Situationsbeschreibung: Sie haben eine Regel erstellt, die alle ausgehenden E-Mails um eine gewisse Anzahl an Minuten zeitverzögert sendet. So haben Sie notfalls Zeit, einen vergessenen Anhang nachträglich anzufügen oder einen Empfänger nachzutragen. Um eine Nachricht doch einmal sofort zu senden, müssen Sie in der Regel eine Ausnahme definieren – etwa nach dem Prinzip: Alle E-Mails mit der Priorität "Hoch" von der Regel ausnehmen und ohne Verzögerung senden.

Falls eine E-Mail bereits von der Regel verarbeitet wurde und im Postausgang auf den Versand wartet, müssen Sie diese E-Mail manuell so bearbeiten, dass die Regelausführung ausgesetzt wird. Sie müssen also die Übermittlungsverzögerung ausschalten und die Priorität auf "Hoch" setzen, bevor Sie wieder auf Senden klicken.

Mit der folgenden Makrolösung müssen Sie eine E-Mail nur noch im Postausgang markieren und ein Makro starten, um sie sofort zu senden. Dafür binden Sie den VBA-Code folgendermaßen in Outlook ein:

  1. Wechseln Sie in den Outlook-Posteingang und drücken Sie Alt + F8, um das Dialogfenster Makros zu öffnen.
  2. Geben Sie im Feld Makroname folgende Bezeichnung ein: SofortSenden
  3. Klicken Sie auf die Schaltfläche Erstellen.
  4. Sie gelangen in ein Codefenster der Entwicklungsumgebung, in dem das Gerüst der Prozedur "SofortSenden" angezeigt wird. Vervollständigen Sie das Prozedurgerüst wie folgt:
Sub SofortSenden()
Dim olApp As Outlook.Application
Dim aktiverExplorer As Outlook.Explorer
Dim aktiverOrdner As Outlook.Folder
Dim postausgangOrdner As Outlook.Folder
Dim aktivesKonto As Outlook.Store
Dim markierteMail As Outlook.MailItem

  On Error GoTo SofortSenden_Error

  Set olApp = Outlook.Application
  Set aktiverExplorer = olApp.ActiveExplorer
  Set aktiverOrdner = aktiverExplorer.CurrentFolder
  Set aktivesKonto = aktiverOrdner.Store
  Set postausgangOrdner = aktivesKonto.GetDefaultFolder(olFolderOutbox)

  If aktiverOrdner.EntryID = postausgangOrdner.EntryID Then
    Set markierteMail = aktiverExplorer.Selection.Item(1)
    With markierteMail
      .DeferredDeliveryTime = DateSerial(4501, 1, 1)
      .Importance = olImportanceHigh
      .Send
    End With
  Else
    MsgBox _
      Prompt:="Wechseln Sie bitte zuerst in den Ordner 'Postausgang'.", _
      Buttons:=vbInformation, _
      Title:="Nachricht sofort senden"
  End If

SofortSenden_End:
  Set markierteMail = Nothing
  Set postausgangOrdner = Nothing
  Set aktivesKonto = Nothing
  Set aktiverOrdner = Nothing
  Set olApp = Nothing

  Exit Sub

SofortSenden_Error:
  MsgBox Prompt:="Senden fehlgeschlagen!" & String(2, vbCrLf) & _
    "(" & Err.Number & ") - " & Err.Description, _
    Buttons:=vbCritical, _
    Title:="Nachricht sofort senden"
  Resume SofortSenden_End

End Sub
  1. Wählen Sie Datei-VbaProject.OTM speichern an. – Falls Outlook Sie später beim Beenden fragt, ob das VBA-Projekt gespeichert werden soll, bestätigen Sie den Speichervorgang aber sicherheitshalber noch einmal mit Ja.
  2. Wählen Sie Datei-Schließen und zurück zu Microsoft Outlook an.

Eine E-Mail, die von der Regel zum zeitverzögerten Versand im Postausgang abgelegt wurde, können Sie nun mit wenigen Klicks sofort senden:

  1. Wechseln Sie in den Postausgang.
  2. Markieren Sie die E-Mail, die Sie sofort senden wollen.
  3. Drücken Sie Alt + F8, um das Dialogfenster Makros zu öffnen.
  4. Im Listenfeld markieren Sie den Makronamen "SofortSenden".
Lassen Sie den sofortigen E-Mail-Versand von einem Makro erledigen.
  1. Dann klicken Sie auf die Schaltfläche Ausführen.

Noch komfortabler geht es, wenn Sie das Makro in die Symbolleiste für den Schnellzugriff integrieren. Dann genügt das Markieren der E-Mail und ein Mausklick auf das neue Symbol.

Den Makrocode können Sie unverändert lassen, wenn Sie als Ausnahmekriterium der Regel die Priorität "Hoch" eingestellt haben. Die folgenden Codezeilen nehmen dann alle Einstellungen für den sofortigen Versand vor:

With markierteMail
  .DeferredDeliveryTime = DateSerial(4501, 1, 1)
  .Importance = olImportanceHigh
  .Send
End With

Die Übermittlungsverzögerung wird ausgeschaltet, wofür das Datum 01.01.4501 als Übermittlungszeit gesetzt wird, was in Outlook so viel wie "kein Datum" bedeutet. Außerdem wird der Importance-Eigenschaft (Wichtigkeit/Priorität) der Wert "olImportanceHigh" zugewiesen.

Falls Sie in der Regel ein anderes Ausnahmekriterium verwenden, müssten Sie den Code an dieser Stelle entsprechend anpassen. Der Rest des Codes prüft lediglich, ob Sie sich tatsächlich im Postausgang Ihres E-Mail-Kontos befinden, damit nicht versehentlich irgendwelche anderen Nachrichten verschickt werden.