Vor Mails ohne Betreff warnen

Zuletzt geändert am 03. April 2013

Outlook-Express warnt den Benutzer, wenn er eine E-Mail ohne Betreff abschicken möchte. In Outlook® fehlt diese Funktion, die Sie aber mit dem folgenden Code oder dem Tool AttachmentsManager nachrüsten können.

Zur Verwendung dieses Beispiels beachten Sie bitte die wichtigen Hinweise, sowie den Workshop VBA in Outlook® verwenden. Den Code bitte in ein neues Modul kopieren (Einfügen -> Modul im VBA-Editor).

Ab Outlook® 2000

Option Explicit
 
Public Function EmptySubject(ByRef Item As Object) As Boolean
 
    '=====================================================================
    ' Gibt eine Warnung aus, wenn eine E-Mail keinen Betreff enthält
    ' (c) Peter Marchert - http://www.outlook-stuff.com
    ' 2008-11-21 Version 1.0.0
    '=====================================================================

    '---------------------------------------------------------------------
    ' Betreff fehlt?
    '---------------------------------------------------------------------
    If Trim(Item.Subject) = "" Then
 
        '-----------------------------------------------------------------
        ' Bei Word als E-Mail-Editor sieht man die Meldung nicht, daher
        ' wird die E-Mail minimiert.
        '-----------------------------------------------------------------
        If Outlook.ActiveInspector.IsWordMail Then
            Outlook.ActiveInspector.WindowState = olMinimized
        End If
 
        '-----------------------------------------------------------------
        ' Nachfrage, ob E-Mail dennoch gesendet werden soll
        '-----------------------------------------------------------------
        If MsgBox("E-Mail ohne Betreff senden?", vbQuestion + vbYesNo + _
            vbDefaultButton2, "E-Mailprüfung") = vbNo Then EmptySubject = True
 
        '-----------------------------------------------------------------
        ' E-Mail wieder anzeigen (Vollbild, da olNormalWindow nicht funktioniert)
        '-----------------------------------------------------------------
        If Outlook.ActiveInspector.IsWordMail Then
            Outlook.ActiveInspector.WindowState = olMaximized
        End If
 
    End If
 
End Function

Der Aufruf erfolgt aus dem Modul DieseOutlookSitzung im Application_ItemSend-Ereignis:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 
    '=====================================================================
    ' Diese Prozedur wird unmittelbar vor dem Senden einer E-Mail aufge-
    ' rufen. Ist "Cancel" wahr, wird das Senden der E-Mail abgebrochen.
    ' (c) 2008 Peter Marchert - http://www.outlook-stuff.com
    '=====================================================================
       
    '---------------------------------------------------------------------
    ' Vor leerem Betreff warnen
    '---------------------------------------------------------------------
    Cancel = EmptySubject(Item)
 
    '---------------------------------------------------------------------
    ' Referenz auf E-Mail löschen
    '---------------------------------------------------------------------
    Set Item = Nothing
 
End Sub

Siehe auch Beitrag Funktionen kombinieren