Ich bin neu in Outlook VBA. Ich möchte den Status einer E-Mail verfolgen, während sie die Phasen und Ordner ihres Lebenszyklus über "Entwürfe", "Ausgang" und "Gesendet" durchläuft. Von ähnlichem Interesse ist die Fähigkeit, vorhandene E-Mails zu finden und auf diese zuzugreifen, um Immobilieninformationen zu sammeln, z. B. Sendezeit. Ich habe mit dem enthaltenen Code begonnen, aber es funktioniert nicht ganz.VBA zum Erstellen und Senden von Outlook-E-Mail, und verfolgen Sie es über den Entwurf/Senden/Senden-Prozess ..?
Wie ich schnell festgestellt habe, schlägt der Do Loop in dem Moment fehl, in dem die E-Mail gesendet wird, da die Variable die Verbindung zur E-Mail trennt. Dies verursacht den Laufzeitfehler "Das Objekt wurde verschoben oder gelöscht". Außerdem gibt es ein seltsames Detail: Die Fehlernummer (Err.Number) ist jedes Mal anders, und ich frage mich, was der Designzweck ist.
Wie kann ich mit dem Versenden von E-Mails verbunden bleiben, während sie sich durch Entwürfe, Postausgang und Versendung bewegen? Ich sehe viele Erwähnungen der Variablen, die vom Mail-Element getrennt wird, aber keine Lösungen, die sich auf die Objekthierarchie verlassen und spätes Binden vermeiden, um das Problem anzugehen. Ich dachte, dass es vielleicht eine GUID oder UUID geben würde, die die Nachricht identifiziert, aber wie in der Dokumentation angegeben, können sich alle Eigenschaften wie EntryID ändern, wenn das Element verschoben wird, und solche Eigenschaften sollten nicht verlässlich sein.
Ich nehme an, mit einer tieferen Untersuchung macht dies Sinn, weil eine E-Mail nur ein Datensatz in einer Datenbanktabelle ist. Und wenn Sie Datensätze zwischen Tabellen duplizieren/löschen, können die Informationen identisch oder ähnlich sein, aber die Datensatznummer wird wahrscheinlich nicht sein. Das trifft auch andere Nägel: die gleiche E-Mail kann mehrmals gesendet werden, und kann auch in verschiedene Ordner und sogar verschiedene Konten kopiert/eingefügt werden. Nun, was ist einzigartig oder nicht ..? Wie Scifi Klone sagen, wer ist echt, und wer ist die Kopie ..?
Also, neben "bleiben" "verbunden" zu einer E-Mail, welche Eigenschaften oder Techniken können ID verwendet werden ..? Wenn es keinen "richtigen" Weg gibt, ein Mail-Element wie beschrieben zu identifizieren, ist das einzige, was mir einfällt, ein existierendes oder benutzerdefiniertes Feld, wie die "Tag" -Eigenschaft von OCX-Steuerelementen, um eine UUID einzufügen. Einige Unternehmen verwenden diese Art von Technik, indem sie eine Anruf-/Bestell-/Supportnummer in die Betreffzeile setzen, um sie dann leichter zu verfolgen.
Erstellen Sie eine Klasse, und fügen Sie "MailItem" als die ereignisaktivierte Eigenschaft dieser Klasse hinzu. Behandeln Sie Ereignisse wie Öffnen/Schreiben/Senden/Speichern usw., um eine benutzerdefinierte Steuerung für den E-Mail-Lebenszyklus zu erhalten. 'EntryID' ist die eindeutige Eigenschaft für jede Postsendung. – cyboashu