VBOffice

Postausgang sendet nicht

So verhindern Sie, dass zu sendende Emails im Postausgang liegen bleiben, statt gesendet zu werden.

Zuletzt geändert: 21.09.2015 | Aufrufe: 14.525  | #155
◀ Vorheriges Beispiel Nächstes Beispiel ▶
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.

Wenn eine Email im Postausgang zum Senden bereitliegt, dann wird die Email kursiv dargestellt. In diesem Zustand darf kein Zugriff mehr auf die Email stattfinden, sonst wird der Sendevorgang abgebrochen. Das ist dann daran zu erkennen, dass die Email nicht mehr kursiv dargestellt wird. Hier hilft dann nur noch, die Email zu öffnen und erneut auf Senden zu klicken.

Viele Addins oder Makros greifen zumindest auf die erste Nachricht in einem Ordner zu, wenn Sie zu diesem Ordner wechseln. Wenn Sie also bei einer Email auf Senden klicken und dann in den Postausgang wechseln, hat das häufig zur Folge, dass die Email eben nicht versendet wird. In solchen Fällen hilft eigentlich nur Selbstdisziplin: Werfen Sie keinen Blick in den Postausgang, solange sich Emails darin befinden (es sei denn, Sie wollen die Nachricht überarbeiten).

Dieses Makro unterstützt Sie dabei:

  • Wenn sich eine Email im Postausgang befindet, können Sie in den Ordner nur nach Bestätigung wechseln.
  • Wenn der Postausgang gerade angezeigt wird und Sie klicken bei einer Email auf Senden, dann wird automatisch zum Posteingang gewechselt.


tip  So fügen Sie Makros in Outlook ein
Private WithEvents m_Explorer As Outlook.Explorer

Private Sub Application_Startup() 
  Set m_Explorer = Application.ActiveExplorer
End Sub

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 
  If FolderIsOutbox(Application.ActiveExplorer.CurrentFolder) Then
    Set Application.ActiveExplorer.CurrentFolder = Session.GetDefaultFolder(olFolderInbox)
  End If
End Sub

Private Sub m_Explorer_BeforeFolderSwitch(ByVal NewFolder As Object, Cancel As Boolean)  
  If FolderIsOutbox(NewFolder) Then
    If NewFolder.Items.Count Then
      If MsgBox("Der Postausgang enthält Nachrichten. Wenn Sie den Ordner anzeigen, wird der Sendevorgang abgebrochen." _
        & vbCrLf & vbCrLf & "Trotzdem Ordner anzeigen?", vbYesNo Or vbQuestion Or vbDefaultButton2) <> vbYes Then
        Cancel = True
      End If
    End If
  End If
End Sub

Private Function FolderIsOutbox(F As Outlook.MAPIFolder) As Boolean
  On Error Resume Next
  Dim Outbox As Outlook.MAPIFolder
  Dim e1$, e2$
  
  If F Is Nothing Then Exit Function
  e1 = LCase$(F.EntryID)
  Set Outbox = Session.GetDefaultFolder(olFolderOutbox)
  e2 = LCase$(Outbox.EntryID)
  If Len(e1) > 0 And Len(e2) > 0 Then
    FolderIsOutbox = (e1 = e2)
  End If
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