ניהול קבצים מצורפים להודעה

ניהול קבצים מצורפים ב‑Outlook

יצירת ושמירת קבצי הודעות Outlook (MSG) מסביר כיצד ליצור ולשמור הודעות, וכיצד ליצור קבצי MSG עם קבצים מצורפים. מאמר זה מסביר כיצד לנהל קבצים מצורפים של Microsoft Outlook עם Aspose.Email. קבצים מצורפים מקובץ הודעה ניגשים אליהם ונשמרים לכונן באמצעות ה‑ MapiMessage מחלקה קבצים מצורפים המאפיין. ה- קבצים מצורפים המאפיין הוא אוסף מסוג MapiAttachmentCollection מחלקה.

בדיקת סוג קובץ מצורף (משולב או רגיל)

קבצים מצורפים משולבים וקבצים מצורפים רגילים משמשים למטרות שונות. קבצים מצורפים משולבים משולבים חזותית בתוך הודעת האימייל והם בדרך כלל תמונות או קבצי מדיה. לעומת זאת, קבצים מצורפים רגילים הם קבצים נפרדים המצורפים להודעה ויכולים לכלול סוגים שונים של קבצים. The MapiAttachment.IsInline מאפיין של MapiAttachment מחלקה מקבלת ערך המציין האם הקובץ המצורף הוא מוטמע או רגיל.

קוד המקטע הבא מחלץ ומציג מידע על כל קובץ מצורף ב‑MapiMessage הטעון, כולל שמות התצוגה שלהם והאם הם קבצים מצורפים משולבים בטקסט או לא.

var message = MapiMessage.Load(fileName);

foreach (var attach in message.Attachments)
{
    Console.WriteLine($"{attach.DisplayName0} : {attach.IsInline)}");
}

בדיקת סוג קובץ מצורף (IsReference)

ה MapiAttachment מחלקה כוללת את IsReference מאפיון המאפשר למפתחים לזהות קבצים מצורפים רפרנסיים בהודעה. עם דוגמת הקוד הבאה, ניתן לבדוק אם קובץ מצורף הוא קובץ רפרנסי:

foreach (var attachment in msg.Attachments)
{
    if (attachment.IsReference)
    {
        // Process reference attachment
    }
}

שמירת קבצים מצורפים מקבצי MSG

כדי לשמור קבצים מצורפים מקובץ MSG:

  1. איטרציה דרך ה- MapiAttachmentCollection אוסף וקבלו את הקבצים המצורפים האישיים.
  2. כדי לשמור את הקבצים המצורפים, קרא למתודה Save() של מחלקת MapiAttachment.

קוד המקטע הבא מראה כיצד לשמור קבצים מצורפים לכונן המקומי.

חלץ קבצים מצורפים מקבצי MSG בפורמט RTF

להודעות המוּפַּרְמָטוֹת כ‑RTF, ניתן להשתמש בקוד הבא כדי להבדיל ולחלץ קבצים מצורפים שהם משולבים או מופיעים כאיקון בגוף ההודעה. קוד המקטע הבא מראה כיצד לזהות ולחלץ קובץ מצורף משובץ מקובץ MSG בפורמט RTF.


var eml = MapiMessage.Load("MSG file with RTF Formatting.msg");

foreach (var attachment in eml.Attachments)
{
    if (IsAttachmentInline(attachment))
    {
        try
        {
            SaveAttachment(attachment, Data.Out/new Guid().ToString());
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}

static bool IsAttachmentInline(MapiAttachment attachment)
{
    foreach (var property in attachment.ObjectData.Properties.Values)
    {
        if (property.Name == "\x0003ObjInfo")
        {
            var odtPersist1 = BitConverter.ToUInt16(property.Data, 0);
            return (odtPersist1 & (1 << (7 - 1))) == 0;
        }
    }
    return false;
}

static void SaveAttachment(MapiAttachment attachment, string fileName)
{
    foreach (var property in attachment.ObjectData.Properties.Values)
    {
        if (property.Name == "Package")
        {
            using var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
            fs.Write(property.Data, 0, property.Data.Length);
        }
    }
}

קבלת קבצים מצורפים של הודעות דוא"ל משובצים

קבצים מצורפים משובצים מסוג OLE מופיעים גם ב‑ MapiMessage מחלקת אוסף Attachment. דוגמת הקוד הבאה מפענחת קובץ הודעה עבור קבצים מצורפים משובצים ושומרת אותו לכונן. The MapiMessage המחלקה FromProperties() מתודה סטטית שמאפשרת ליצור הודעה חדשה מקובץ מצורף משובץ. קוד המקטע הבא מראה כיצד לקבל קבצים מצורפים של הודעות דוא"ל משובצים.

הסרת קבצים מצורפים

ספריית Aspose Outlook מספקת פונקציונליות להסרת קבצים מצורפים מקבצי Microsoft Outlook Message (.msg):

  • קרא למתודה RemoveAttachments(). היא מקבלת את נתיב קובץ ההודעה כפרמטר. היא ממומשת כמתודה סטטית ציבורית, ולכן אין צורך ליצור מופע של האובייקט.

קטע הקוד הבא מראה כיצד להסיר קבצים מצורפים.

אתם יכולים גם לקרוא ל‑ MapiMessage מתודה סטטית של מחלקה DestroyAttachment(). הוא פועל מהר יותר מ‑RemoveAttachment(), מכיוון שמתודת RemoveAttachment() מפענחת את קובץ ההודעה.

הוספת קבצים מצורפים מסוג MSG

הודעת Outlook יכולה להכיל הודעות Microsoft Outlook אחרות בקבצים מצורפים, כאשר הן רגילות או משובצות. The MapiAttachmentCollection מספק חברים מוטענים של המתודה Add ליצירת הודעות Outlook עם שני סוגי הקבצים המצורפים.

הוספת קבצים מצורפים רפרנסיים ל‑MapiMessages

ה ReferenceAttachmentOptions המחלקה מפשטת הוספת קבצים מצורפים רפרנסיים על ידי אריזה של כל המאפיינים הדרושים באובייקט יחיד.

פרמטרים של ReferenceAttachmentOptions:

  • sharedLink: קישור משותף מלא לקובץ המצורף שמסופק על ידי שירות האינטרנט המאחסן את הקובץ.
  • url: מיקום הקובץ או כתובת ה‑URL של המשאב.
  • providerName: שם ספק הקובץ המצורף הרפרנס (למשל, Google Drive, Dropbox).
  • דוגמה: הוספת קובץ מצורף רפרנס עם ReferenceAttachmentOptions
var options = new ReferenceAttachmentOptions(
    "https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
    "https://drive.google.com/drive/my-drive",
    "GoogleDrive");

// Add reference attachment
msg.Attachments.Add("Document.pdf", options);

שבירת הודעות כמקבצים מצורפים

קוד המקטע הבא מראה כיצד לשלב קובץ MSG כקובץ מצורף להודעה.

קריאת הודעות משובצות מקבצים מצורפים

קטע הקוד הבא מציג כיצד לקרוא הודעות משובצות מקבצים מצורפים.

הוספה והחלפת קובץ מצורף

Aspose.Email API מספקת אפשרות להכניס קבצים מצורפים במיקום אינדקס ספציפי בהודעה האב. היא גם מספקת אפשרות להחליף את תוכן הקובץ המצורף בקובץ מצורף הודעה אחר.

הוספת קבצים מצורפים במקומות ספציפיים

ממשק Aspose.Email API מספק אפשרות להכניס קובץ מצורף MSG ל‑MSG הורה באמצעות מתודת Insert של MapiAttachmentCollection – MapiAttachmentCollection Insert(int index, string name, MapiMessage msg). קוד המקטע הבא מראה כיצד להכניס קובץ מצורף במקום ספציפי.

החלפת תוכן קובץ מצורף

אפשר להשתמש בזה כדי להחליף את תוכן הקובץ המצורף המשובץ בתוכן חדש באמצעות המתודה Replace. עם זאת, לא ניתן להשתמש בו כדי להוסיף קובץ מצורף עם PR_ATTACH_NUM = 4 (לדוגמה) לאוסף שבו collection.Count = 2. קטע הקוד הבא מראה כיצד להחליף את תוכן הקובץ המצורף.

שינוי שם קבצים מצורפים ב‑MapiMessage

ניתן לערוך את ערך המאפיין DisplayName בקבצים מצורפים של MapiMessage.

var msg = MapiMessage.Load(fileName);
msg.Attachments[0].DisplayName = "New display name 1";
msg.Attachments[1].DisplayName = "New display name 2";

שמירת קבצים מצורפים מהודעות חתומות דיגיטלית

Aspose.Email API מספקת אפשרות לקבל או להגדיר ערך המציין האם הודעה חותמת (clear‑signed) תפוענח.