Kann ich die Konversations-ID in Outlook per VBA ändern, um unabhängige E-Mails zu gruppieren?

9

Ich bekomme viele Mails von verschiedenen Robotern. Ich kann E-Mails leicht nach Betreff identifizieren (zum Beispiel: "Antwort auf Ticket 123"). Leider wird jede E-Mail automatisch einzeln generiert.

Für dieses Outlook gruppiert sie nicht wie eine normale Konversation.

Ich frage mich, ob es möglich ist, zum Beispiel die Mail-Eigenschaft "ConversationID" zu ändern? Muss ich ein "ConversationTopic" erstellen und es den verwandten MailItems zuweisen?

    
Volker 20.11.2015, 22:07
quelle

2 Antworten

2

Ich konnte das selbst lösen, indem ich Redemption nutze, um Schreibzugriff auf die MAPI-Eigenschaften von ConversationTopic zu bekommen und ConversationIndex.

Während ConversationTopic zunächst zum Gruppieren von Nachrichten verwendet wird, spielt auch ConversationIndex eine Rolle bei der Gruppierung: Es enthält nicht nur den Zeitstempel der Sortierung, sondern die ersten Bytes sind ein Konversationscode, der in allen E-Mails einer Konversation übereinstimmen muss. Ansonsten sind sie immer noch nicht gruppiert, auch nicht mit demselben Thema. Siehe hier für Details: Ссылка

Glücklicherweise macht die Einstellung von Index auf Null offensichtlich, dass Outlook nur auf das Thema achtet, sodass wir keinen neuen Index neu berechnen müssen.

Mein Arbeitscode:

%Vor%     
Hannobo 29.01.2016 18:21
quelle
1

Dies ist keine vollständige Antwort, aber es ist zu lang für einen Kommentar.

Ich konnte die MAPI conversationTopic- und conversationIndex-Eigenschaften mithilfe der Tipps festlegen hier und der Code:

%Vor%

für die Eigenschaft ConversationIndex. Dies setzt voraus, dass Sie eine Nachricht als OItem und die andere als OItem2 haben, die beide als Objects deklariert sind. Beachten Sie, dass es sich bei dieser Eigenschaft um eine Binärdatei handelt. Wenn Sie sie also anzeigen möchten, können Sie Folgendes verwenden:

%Vor%

Dabei steht x für die Eigenschaft (auf eine Variable setzen oder einfach den Code propertyAccessor.GetProperty einfügen). Dies wird relevant, da die ConversationID des Nachrichtenobjekts das letzte Bündel von "Zeichen / Binär-Bits" der MAPI ConversationIndex-Eigenschaft ist. Durch das Ändern der ConversationIndex-Eigenschaft wurde die ConversationID jedoch NICHT geändert.

Sowohl die ConversationIndex- als auch die conversationTopic-Eigenschaften des Nachrichtenobjekts sind schreibgeschützt. Wenn Sie jedoch die conversationTopic MAPI-Eigenschaft DID ändern, ändert sich die ConversationTopic-Eigenschaft der Nachricht. Ich konnte dies jedoch nicht erreichen, um die Nachrichten tatsächlich zu gruppieren.

Meine Untersuchungen haben ergeben, dass die ConversationTopic-Eigenschaft diejenige sein sollte, die die Nachrichten anfänglich gruppiert, wobei die ConversationIndex-Eigenschaft sie nach der Gruppierung sortiert. Ich konnte jedoch die Nachrichten nicht gruppieren, auch nicht nach der Zuordnung same ConversationTopic für MAPI und das Nachrichtenobjekt.

Hier ist Code, der dieses Verhalten zeigt:

%Vor%

Teilen Sie dies, falls es jemandem hilft, das Problem zu lösen.

    
OpiesDad 28.01.2016 21:12
quelle

Tags und Links