Funktionen kombinieren

Zuletzt geändert am 02. Januar 2009

Einige der Programmier-Beispiele, welche auf das Senden einer E-Mail reagieren, lassen sich auch kombinieren.

Dazu wurden die entsprechenden Funktionen so aufgebaut, dass Sie einen Rückgabewert liefern, welcher ausgewertet wird, bevor eine weitere Funktion aufgerufen werden kann. Der Rückgabewert bestimmt, ob das Senden abgebrochen werden soll, weil der Benutzer noch eine Änderung vornehmen will/muss.

Ist Cancel auf True gesetzt, werden die nachfolgenden Funktionen bzw. Prozeduren nicht mehr bearbeitet und die E-Mail auch nicht gesendet. Es wurden alle Prozeduren/Funktionen hier exemplarisch aufgenommen. Nicht alle zusammen machen Sinn. Sie können jede Prozedur/Funktion einfach durch ein vorangesetztes Hochkomma deaktivieren. Der Code muss in das Modul DieseOutlookSitzung kopiert werden.

Option Explicit
 
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 
    '=====================================================================
    ' Diese Prozedur wird unmittelbar vor dem Senden einer E-Mail aufge-
    ' rufen. Wird "Cancel" "True", so wird das Senden der E-Mail abgebrochen.
    ' (c) Peter Marchert - http://www.outlook-stuff.com
    ' 2008-11-21 Version 1.0.0
    '=====================================================================
    
    Dim strResult As String ' Rückgabewert der Funktion "AutoFile"
    
    '---------------------------------------------------------------------
    ' Immer die Mail auch an BCC-Empfänger senden?
    '---------------------------------------------------------------------
    Cancel = AlwaysBCC(Item)
 
    '---------------------------------------------------------------------
    ' E-Mail abhängig vom Empfänger in bestimmten Ordner speichern?
    '---------------------------------------------------------------------
    If Not Cancel Then strResult = AutoFile(Item)
    If strResult = "Cancel" Then Cancel = True
 
    '---------------------------------------------------------------------
    ' Ordnerauswahl zum Ablegen der gesendeten Mail anzeigen? Wird nur
    ' aufgerufen, wenn die Mail nicht schon Empfängerabhängig abgelegt
    ' wurde.
    '---------------------------------------------------------------------
    If Not Cancel And strResult = "" Then Cancel = SentFolder(Item)
 
    '---------------------------------------------------------------------
    ' Emfpängerabhängige Lese- und/oder Empfangsbestätigung anfordern?
    '---------------------------------------------------------------------
    If Not Cancel Then Call ReadReceiptRequested(Item)
 
    '---------------------------------------------------------------------
    ' Automatisch eine Mailkopie senden?
    '---------------------------------------------------------------------
    If Not Cancel Then Cancel = MailCopy(Item)
 
    '---------------------------------------------------------------------
    ' Automatisch eine Mailkopie mit geändertem Betreff senden?
    '---------------------------------------------------------------------
    If Not Cancel Then Call MailCopyChangedSubject(Item)
 
    '---------------------------------------------------------------------
    ' Vor leerem Betreff warnen?
    '---------------------------------------------------------------------
    If Not Cancel Then Cancel = EmptySubject(Item)
 
    '---------------------------------------------------------------------
    ' Referenz auf E-Mail löschen
    '---------------------------------------------------------------------
    Set Item = Nothing
 
End Sub