Често задавани въпроси

Contents
[ ]

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: Не, безопасността при работа с нишки не е гарантирана в такъв случай. Записването на съобщения трябва да се извършва в един единствен поток. Въпреки това, продуктът трябва да работи правилно с различни обекти от различни потоци.