سوالات متداول
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 چنین قابلیتی دارد به نام ‘تبدیل محتوا, که فرآیند قالببندی صحیح پیام برای هر گیرنده است. تصمیم برای انجام تبدیل محتوا بر پیام بستگی به مقصد و فرمت پیام در حال پردازش دارد.
به عبارت دیگر برای مشتریان ناشناخته، سرور میتواند قالببندی پیام را بر اساس تنظیمات سرور انجام دهد (برای انتخاب مناسبترین فرمت پیام). همانطور که میدانید، عمومیترین فرمت برای هر مشتری ’text/plain’ است و این تنظیمات در سرور قابل پیکربندی هستند.
لطفاً توجه داشته باشید: Outlook یک کلاینت ایمیل معروف برای Microsoft Exchange Server است (در صورتی که نسخه Outlook قدیمیتر از سرور باشد). این یعنی Exchange Server فرمت پیام را بر اساس قابلیتهای Outlook ارسال میکند. در مورد ما وقتی ExchangeWebServiceClient سعی میکند پیام را بازیابی کند، قابلیتهای اجزای ما برای MS Exchange شناخته شده نیست. سرور پیام را به سادهترین فرمت (text/plain) به اجزا میفرستد. به عبارت دیگر هیچ بخش html در پاسخ سرور وجود ندارد. در این وضعیت، تصاویر به عنوان پیوست در پیام گنجانده میشوند.
راهی برای جلوگیری از مشکل توصیفشده وجود دارد. اگر پیام در سرور دارای Content‑Type: multipart/alternative باشد و یکی از بخشهای آن text/plain باشد، در این حالت پیام به همان صورت به مشتری ارسال میشود. تصاویر در این حالت در بدنه پیام نمایش داده میشوند زیرا پیام همچنین شامل بخش html است. در سناریوی فعلی، پیام توسط MS Outlook به MS Exchange اضافه میشود و به همین دلیل 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: خیر، ایمنی رشتهها در چنین حالتی تضمین نمیشود. نوشتن پیامها باید در یک رشته انجام شود. با این حال، محصول باید به درستی با اشیای مختلف از رشتههای مختلف کار کند.