Frage

Ich bin mit Microsoft.Office.Interop.Outlook in C # ein Postfach zuzugreifen und Nachrichten mit bestimmten Dateianhängen zu finden. Ich muss mit den Anlagen zu interagieren.

Derzeit bin ich die Datei auf einen neuen Standort und von dort aus erreichbar. Dieser Kopiervorgang verlangsamt mich. Ich würde idealerweise auf die Datei zugreifen möchten, wo immer es im Speicher gespeichert wird, aber das Outlook.Attachment.PathName Feld zurückkehrt null.

Die Nachrichten auf einem Exchange-Server gespeichert werden.

Ist es möglich, sie direkt zugreifen oder muss ich auch weiterhin brauchen, um die Dateien zu speichern?

War es hilfreich?

Lösung

Outlook.Attachment.PathName impliziert eine Plattenposition. Der Anhang ist eine Datei; wenn Sie mit ihm interagieren wollen, müssen Sie es wie eine Datei zu behandeln, und das bedeutet, es heraus zu der lokalen Festplatte zu speichern.

Das Outlook.Attachment Objekt tatsächlich nicht die angehängte Datei enthält; es enthält einen Link zu der angehängten Datei, mit einigen zugehörigen Metadaten.

Andere Tipps

Ich weiß nicht, seine, wenn möglich in irgendeiner Weise über das Outlook-Objektmodell, aber MAPI sicher ermöglicht es Ihnen, dass.

Sie müssen die Nachrichten MAPIObject öffnen, eine IMessage. Verwendung Von dort IMessage::OpenAttach() , die eine IAttach
. Die Anlagengröße wird in PR_ATTACH_SIZE gespeichert, die eigentlichen Daten in PR_ATTACH_DATA_BIN.

Wie immer Redemption wahrscheinlich hat einen einfacheren Weg, dies zu tun.

Bearbeiten
Der Zugriff über MAPI ist, was Outlook funktioniert intern sowieso -. Sollte einigermaßen schnell, zumindest bei der Verwendung von Exchange-Cache-Modus

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top