Часто задаваемые вопросы
Вопрос
Привет! для следующего кода:
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.
Вопрос: Как мне извлечь данные из вложения “oleData.mso”, которое я получаю в результате чтения MapiMessage с встраиваемым объектом OLE?
Ответ: Файлы такие как “oleData.mso” относятся к формату файла Microsoft Compound Document (MCDF) и, к сожалению, поддержка таких файлов выходит за рамки компетенции Aspose.Email. Тем не менее, существуют определенные библиотеки .NET с открытым исходным кодом, например OpenMCDF, которые могут использоваться для чтения содержимого таких файлов для сохранения на диск.
Вопрос: Можем ли мы записывать в один и тот же PST файл в параллельных потоках, используя одни и те же объекты?
Ответ: Нет, безопасность потоков в таком случае не гарантируется. Запись сообщений должна выполняться в одном потоке. Однако продукт должен корректно работать с различными объектами из различных потоков.