Outlook bietet die Möglichkeit, Lesebestätigungen für E-Mails anzufordern, um sicherzustellen, dass Ihre Nachrichten von den Empfängern gelesen wurden. Diese Funktion ist nützlich, wenn Sie wissen möchten, ob wichtige E-Mails geöffnet wurden. Standardmäßig müssen Sie für jede E-Mail manuell die Lesebestätigung aktivieren, was mühsam sein kann, wenn Sie diese nur für bestimmte Nachrichten benötigen. Hier kommt VBA ins Spiel, um den Prozess zu automatisieren und effizienter zu gestalten.
Überblick über das Problem
Die manuelle Anforderung einer Lesebestätigung für jede gesendete E-Mail kann zeitaufwendig sein. Wenn Sie jedoch eine Automatisierungslösung haben, die für bestimmte Empfänger automatisch eine Lesebestätigung anfordert, sparen Sie Zeit und stellen sicher, dass die wichtigen E-Mails entsprechend verfolgt werden. Das folgende VBA-Skript ermöglicht genau dies: Es überprüft automatisch die Empfängeradressen und aktiviert die Lesebestätigung nur, wenn diese in einer definierten Liste enthalten sind.
Der VBA-Lösungsansatz
Das VBA-Skript durchsucht alle Empfänger einer ausgehenden E-Mail. Wenn einer der Empfänger mit den Adressen oder Domänen in der konfigurierten Liste übereinstimmt, wird die Option zum Anfordern einer Lesebestätigung aktiviert.
Beispielcode:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim mail As MailItem
Dim recipient As Recipient
Dim Addresses As String
Dim Request As Boolean
' Passen Sie diese Variablen an
Request = True ' True = Lesebestätigung anfordern, False = keine Lesebestätigung
Addresses = "example@example.com, domain.com" ' Geben Sie hier die E-Mail-Adressen oder Domains ein, getrennt durch ein Komma
If TypeOf Item Is MailItem Then
Set mail = Item
For Each recipient In mail.Recipients
If CheckRecipientInList(recipient.Address, Addresses) Then
mail.ReadReceiptRequested = Request
Exit For ' Beenden der Schleife, wenn ein Treffer gefunden wurde
End If
Next recipient
End If
End Sub
Private Function CheckRecipientInList(ByVal recipientAddress As String, ByVal addressList As String) As Boolean
Dim addressArray() As String
Dim i As Integer
' Splitte die Adressen in ein Array
addressArray = Split(addressList, ",")
' Überprüfung jeder Adresse im Array
For i = LBound(addressArray) To UBound(addressArray)
If InStr(1, recipientAddress, Trim(addressArray(i)), vbTextCompare) > 0 Then
CheckRecipientInList = True
Exit Function
End If
Next i
' Rückgabe False, wenn keine Übereinstimmung gefunden wurde
CheckRecipientInList = False
End Function
Funktionsweise des Codes
- Hauptfunktion
Application_ItemSend
:- Diese Funktion wird automatisch aufgerufen, bevor eine E-Mail gesendet wird.
- Der Code überprüft, ob das gesendete Objekt eine E-Mail ist.
- Jede Empfängeradresse wird geprüft, ob sie in der konfigurierten Liste
Addresses
enthalten ist.
- Unterstützende Funktion
CheckRecipientInList
:- Zerlegt die Liste der Adressen in ein Array.
- Vergleicht die Empfängeradresse mit den Einträgen im Array.
- Gibt
True
zurück, wenn eine Übereinstimmung gefunden wird, andernfallsFalse
.
Anpassung des Skripts
Um das Skript an Ihre Bedürfnisse anzupassen, passen Sie die folgenden Variablen an:
Request
: Legen SieTrue
fest, um Lesebestätigungen anzufordern, oderFalse
, um dies zu deaktivieren.Addresses
: Geben Sie die E-Mail-Adressen oder Domänen ein, für die die Lesebestätigung aktiviert werden soll. Trennen Sie mehrere Einträge mit einem Komma.
Praktische Anwendungsfälle
- Wichtige Geschäftspartner: Sie möchten sicherstellen, dass Ihre Nachrichten von wichtigen Geschäftspartnern gelesen werden.
- Projektkommunikation: Sie benötigen eine Bestätigung, dass Projektmitglieder Ihre Updates lesen.
- Berechtigte Kontrolle: Das Skript hilft dabei, automatisch zu entscheiden, ob eine Lesebestätigung angefordert wird, basierend auf definierten Empfängeradressen.
Einschränkungen und Hinweise
- Freiwilligkeit des Empfängers: Die Lesebestätigung wird nur gesendet, wenn der Empfänger zustimmt. Das Skript kann diese Entscheidung nicht erzwingen.
- Sicherheitsrichtlinien: Einige Organisationen haben Richtlinien, die Lesebestätigungen standardmäßig ablehnen. Dies kann das Verhalten des Skripts beeinflussen.
Buchtipp