FAQ
Frage
Hallo! zum folgenden Code:
Aspose.Email.Mime.ContentType ct = new Aspose.Email.Mime.ContentType();
ct.MediaType = "application/msword";
ct.CharSet = "ISO-2022-JP";
Attachment att = new Attachment("Test.doc", ct);
Console.WriteLine(att.ContentType.Name);
att.ContentType.Name gibt den Namen des angehängten Dokuments zurück. Ist das ein erwartetes Verhalten?
Antwort: Ja, das ist erwartetes Verhalten. Wenn ContentType.Name nicht explizit gesetzt wird, wird der Dateiname als Name übernommen.
Frage:
Warum wandelt ExchangeWebServiceClient.FetchMessage die eingebetteten Bilder in Anhänge um?
Antwort: Microsoft Exchange Server verfügt über eine solche Funktionalität wie „Inhaltskonvertierung, was den Prozess der korrekten Formatierung einer Nachricht für jeden Empfänger bezeichnet. Die Entscheidung, eine Inhaltskonvertierung für eine Nachricht durchzuführen, hängt vom Ziel und vom Format der zu verarbeitenden Nachricht ab.
Mit anderen Worten kann der Server für unbekannte Clients die Nachrichtenformatierung gemäß den Server‑Einstellungen vornehmen (um das am besten geeignete Nachrichtenformat auszuwählen). Wie Sie verstehen, ist das universellste Format für jeden Client „text/plain“ und diese Einstellungen sind auf dem Server konfigurierbar.
Bitte beachten Sie: Outlook ist ein bekannter E‑Mail‑Client für Microsoft Exchange Server (insbesondere, wenn MS Outlook eine ältere Version als der Server besitzt). Das bedeutet, dass Exchange Server das Nachrichtenformat gemäß den Fähigkeiten von Outlook übermittelt. In unserem Fall, wenn ExchangeWebServiceClient versucht, die Nachricht abzurufen, sind die Fähigkeiten unserer Komponenten für MS Exchange unbekannt. Der Server übergibt die Nachricht an die Komponenten im einfachsten Format (text/plain). Mit anderen Worten gibt es im Server‑Response keine HTML‑Teile. In dieser Situation werden Bilder in der Nachricht wie Anhänge beigefügt.
Es gibt einen Weg, das beschriebene Problem zu umgehen. Wenn eine Nachricht auf dem Server den Content‑Type: multipart/alternative hat und einer ihrer Teile ist text/plain, wird diese Nachricht unverändert an den Client weitergeleitet. Bilder werden in diesem Fall im Nachrichten‑Body angezeigt, weil die Nachricht ebenfalls einen HTML‑Teil enthält. Im aktuellen Szenario wird die Nachricht über MS Outlook zu MS Exchange hinzugefügt, wodurch der Content‑Type der Nachricht nicht „multipart/alternative“ ist. Dadurch entsteht ein Problem, wenn versucht wird, die Nachricht abzurufen. Beispiele für ähnliche Probleme: einer (http://support.risualblogs.com/blog/2011/02/24/html-mails-sent-via-owa-and-outlook-2011-are-received-as-plain-text-mails-externally/), zwei (http://forums.mozillazine.org/viewtopic.php?f=39&t=628678), drei (http://stackoverflow.com/questions/4681798/how-do-i-send-html-multipart-alternative-from-exchange-web-services-2010-sp1). Als Fazit: Die im Issue beschriebene Situation (Bilder, die als Anhänge in der Nachricht enthalten sind) ist kein Bug der Aspose‑Komponenten. Es handelt sich um ein featurespezifisches Verhalten des Exchange‑Servers.
Frage: Wie extrahiere ich Daten aus dem Anhang "oleData.mso", den ich beim Lesen einer MapiMessage erhalte, die ein eingebettetes OLE‑Objekt enthält?
Antwort: Dateien wie "oleData.mso" beziehen sich auf das Microsoft Compound Document File (MCDF)-Format und leider liegt die Unterstützung solcher Dateien außerhalb des Aufgabenbereichs von Aspose.Email. Es gibt jedoch einige Open‑Source‑.NET‑Bibliotheken, z. B. OpenMCDF, die zum Lesen des Inhalts solcher Dateien zum Speichern auf der Festplatte verwendet werden können.
Frage: Können wir in parallelen Threads mit denselben Objekten in dieselbe PST‑Datei schreiben?
Antwort: Nein, Thread‑Sicherheit ist in einem solchen Fall nicht garantiert. Das Schreiben von Nachrichten sollte in einem einzigen Thread erfolgen. Das Produkt muss jedoch korrekt mit verschiedenen Objekten aus unterschiedlichen Threads arbeiten.