הבדלה בין קבצים מצורפים מוטבעים לקבצים רגילים
זהו תרחיש נפוץ שבו הודעת דוא"ל מכילה תמונות מוטבעות בגופה וכן קבצים מצורפים רגילים. בעזרת MailMessage המחלקה, הקבצים המוטבעים ניתנים לחילוץ דרך LinkedResourceCollection מחלקה, בעוד שהקבצים הרגילים נגישים/ניתנים לחילוץ באמצעות AttachmentCollection מחלקת הודעה. עם זאת, המצב שונה כאשר ההודעה נטענת באמצעות מחלקת Aspose.Email.Mapi.MapiMessage, מכיוון שכל התמונות המוטבעות והקבצים המצורפים הרגילים נגישים למשתמש באותו מחלקת MapiAttachmentCollection. לכן יש צורך לבנות שיטה שתוכל להבדיל בין קובץ מוטבע לקובץ רגיל כאשר משתמשים ב‑MapiMessage.
שימוש ב‑Aspose.Email להבדלת קבצים מוטבעים מקבצים רגילים
מאמר זה מסביר כיצד להבדיל קבצים מוטבעים מקבצים רגילים באמצעות MapiMessage. לצורך ההבדלה, סוג הגוף של MapiMessage נלקח בחשבון כך:
גוף טקסט פשוט: הודעות דוא"ל בגוף טקסט פשוט אינן דורשות בדיקה, מכיוון שכל הקבצים המצורפים בשאלות כאלה תמיד הם קבצים רגילים.
גוף HTML: במקרה של הודעה עם גוף HTML, הקובץ המצורף צריך להכיל את המאפיין PR_ATTACH_FLAGS (0x37140003), והערך שלו צריך להיות 0x00000004 עבור קבצים מוטבעים. אם תנאי זה מתקיים, נקבע על פי תגים PR_ATTACH_CONTENT_LOCATION ו‑PR_ATTACH_CONTENT_ID את סוג הקובץ. במידה ואין את תג MAPI PR_ATTACH_FLAGS, נבדוק את המאפיין PR_ATTACH_DISPOSITION (0x3716001F או 0x3716001E) כדי לקבוע את סוג הקובץ.
גוף RTF: אם הגוף הוא RTF, כל קבצי ה‑OLE מצורפים הם קבצים מוטבעים. ערך PR_ATTACH_METHOD לכל קבצי ה‑OLE הוא 0x00000006.
קטע הקוד שלהלן מדגים כיצד להבדיל באופן תכנותי בין קבצים מצורפים מוטבעים לקבצים רגילים. הפונקציה IsInlineAttachment מקבלת קובץ מצורף וסוג גוף ההודעה כפרמטרים ומחזירה true אם הקובץ המצורף הוא מוטבע.