In VBA prüfen, ob eine E-Mail in Outlook gesendet wurde.

Home-›Foren-›Outlook-›Outlook VBA-›In VBA prüfen, ob eine E-Mail in Outlook gesendet wurde.

1 Antwort anzeigen (von insgesamt 1)
  • Autor
    Beitrag
  • #1031383
    Mailhilfe
    Keymaster

      Um sicherzustellen, ob eine E-Mail tatsächlich versandt wurde oder ob der Benutzer die E-Mail in Outlook abgebrochen hat, gibt es eine Möglichkeit, das Sent-Attribut des MailItem-Objekts in Outlook zu überprüfen. Hierbei wird der VBA-Code angepasst, sodass Outlook erst dann geschlossen wird bzw. die Aktion erst dann abgeschlossen wird, wenn die E-Mail wirklich gesendet wurde.

      Hier ist eine Lösung, die dies berücksichtigt:

      Ansatz

      1. Zuerst wird ein E-Mail-Objekt in Outlook erstellt und der Text, Empfänger, Betreff etc. gesetzt.
      2. Anschließend wird die E-Mail angezeigt (Display), damit der Benutzer die Nachricht bearbeiten kann.
      3. Nach dem Anzeigen der Nachricht prüft der Code, ob die E-Mail tatsächlich versendet wurde.
      4. Durch das Abfragen der Sent-Eigenschaft des MailItem-Objekts kann festgestellt werden, ob die E-Mail gesendet wurde (Sent = True) oder nicht (Sent = False).
      Sub SendeEmailMitÜberprüfung()
      Dim OutlookApp As Object
      Dim Mail As Object
      Dim Versendet As Boolean

      ‘ Outlook-Anwendung erstellen
      Set OutlookApp = CreateObject(“Outlook.Application”)
      Set Mail = OutlookApp.CreateItem(0) ‘ 0 steht für olMailItem

      ‘ E-Mail-Parameter festlegen
      With Mail
      .To = “kunde@beispiel.com” ‘ Empfängeradresse
      .Subject = “Betreff der E-Mail” ‘ Betreff der E-Mail
      .Body = “Dies ist der Body der E-Mail.” ‘ Text der E-Mail
      .Display ‘ E-Mail anzeigen
      End With

      ‘ Pause, um Outlook Zeit zu geben, die E-Mail zu verarbeiten
      DoEvents

      ‘ Überprüfen, ob die E-Mail versendet wurde
      On Error Resume Next
      Versendet = Mail.Sent
      On Error GoTo 0

      ‘ Überprüfungsergebnis anzeigen
      If Versendet Then
      MsgBox “Die E-Mail wurde erfolgreich versendet.”, vbInformation
      Else
      MsgBox “Der Versand der E-Mail wurde abgebrochen.”, vbExclamation
      End If

      ‘ Objekte freigeben
      Set Mail = Nothing
      Set OutlookApp = Nothing
      End Sub

      Erklärung des Codes

      • E-Mail erstellen und anzeigen: Das Mail-Objekt wird erstellt und alle relevanten Felder wie Empfänger (.To), Betreff (.Subject) und Nachrichtentext (.Body) werden gesetzt. Durch .Display wird die E-Mail angezeigt, sodass der Benutzer sie bearbeiten und versenden oder abbrechen kann.
      • Prüfung des Versandstatus: Nachdem die E-Mail angezeigt wurde, prüft der Code mit Mail.Sent, ob die E-Mail tatsächlich versendet wurde. Wenn Sent = True ist, wurde die E-Mail erfolgreich versendet; wenn nicht, hat der Benutzer sie abgebrochen.
      • Benachrichtigung: Basierend auf dem Ergebnis wird eine entsprechende Meldung angezeigt, entweder dass die E-Mail erfolgreich versendet wurde oder dass der Versand abgebrochen wurde.

      Wichtige Hinweise

      • Der Code geht davon aus, dass der Benutzer die E-Mail manuell versendet oder abbricht. Solange die E-Mail geöffnet ist, bleibt das Sent-Attribut auf False.
      • Die Eigenschaft Sent ist erst nach dem Schließen des E-Mail-Fensters verfügbar.
    1 Antwort anzeigen (von insgesamt 1)

    Hat Ihnen der Beitrag gefallen?

    1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
    Loading...