Часто задаваемые вопросы

Contents
[ ]

Вопрос

Привет! для следующего кода:


 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 файл в параллельных потоках, используя одни и те же объекты?

Ответ: Нет, безопасность потоков в таком случае не гарантируется. Запись сообщений должна выполняться в одном потоке. Однако продукт должен корректно работать с различными объектами из различных потоков.