FAQ
Question
Привіт! щодо наступного коду:
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 повертає ім’я прикріпленого документа. Чи є це очікуваною поведінкою?
Відповідь: Так, це очікувана поведінка. Якщо ContentType.Name не встановлено явно, значення імені файлу буде використано як ім’я.
Питання:
Чому ExchangeWebServiceClient.FetchMessage перетворює вбудовані зображення у вкладення?
Відповідь: Microsoft Exchange Server має таку функціональність, як ‘Конвертація вмісту, що є процесом правильного форматування повідомлення для кожного одержувача. Рішення про виконання конвертації вмісту повідомлення залежить від призначення та формату оброблюваного повідомлення.
Іншими словами, для невідомих клієнтів сервер може формувати повідомлення згідно з налаштуваннями сервера (для вибору найбільш придатного формату повідомлення). Як ви розумієте, найуніверсальнішим форматом для будь‑якого клієнта є ’text/plain’, і ці налаштування можна налаштовувати на сервері.
Зверніть увагу: Outlook — відомий клієнт електронної пошти для Microsoft Exchange Server (у випадку, якщо версія MS Outlook старіша за сервер). Це означає, що Exchange Server передає формат повідомлення відповідно до можливостей Outlook. У нашому випадку, коли ExchangeWebServiceClient намагається отримати повідомлення, можливості наших компонентів невідомі для MS Exchange. Сервер передає повідомлення компонентам у найпростішому форматі (text/plain). Іншими словами, у відповіді сервера немає html‑частин. У цій ситуації зображення включаються до повідомлення як вкладення.
Існує спосіб уникнути описаної проблеми. Якщо повідомлення на сервері має заголовок Content‑Type: multipart/alternative і одна з його частин — text/plain, то таке повідомлення передається клієнту без змін. Зображення у цьому випадку відображаються в тілі повідомлення, оскільки повідомлення також містить html‑частину. У поточному сценарії повідомлення додається до MS Exchange за допомогою MS Outlook, і в результаті Content‑Type повідомлення не є ‘multipart/alternative’. Через це виникає проблема при спробі отримати повідомлення. Наприклад, ось зразки подібних проблем: один(http://support.risualblogs.com/blog/2011/02/24/html-mails-sent-via-owa-and-outlook-2011-are-received-as-plain-text-mails-externally/), два(http://forums.mozillazine.org/viewtopic.php?f=39&t=628678), три(http://stackoverflow.com/questions/4681798/how-do-i-send-html-multipart-alternative-from-exchange-web-services-2010-sp1) . Як висновок, ситуація, описана в питанні (зображення, включені в повідомлення як вкладення), не є помилкою компонентів Aspose. Це специфічна функція сервера Exchange.
Question: Як витягти дані з вкладення "oleData.mso", яке я отримую під час читання MapiMessage з вбудованим OLE‑об’єктом?
Answer: Файли типу "oleData.mso" належать до формату Microsoft Compound Document (MCDF) і, на жаль, підтримка таких файлів виходить за межі можливостей Aspose.Email. Проте існують відкриті .NET бібліотеки, наприклад OpenMCDF, які можна використовувати для читання вмісту таких файлів та збереження їх на диск.
Question: Чи можна записувати у той самий файл PST у паралельних потоках, використовуючи ті ж об’єкти?
Answer: Ні, безпечність потоків у цьому випадку не гарантована. Запис повідомлень має виконуватись в одному потоці. Однак продукт має коректно працювати з різними об’єктами з різних потоків.