1. מוצרים
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS עבור .NET

קרא, צור ועבד קבצי Outlook MSG, מכולות CFB והודעות EML מ‑.NET — חינם וקוד פתוח, ללא תלות ב‑Microsoft Outlook.

ספרייה קוד פתוח .NET ל‑MSG, CFB ו‑EML

Aspose.Email FOSS עבור .NET הוא ספרייה C# חופשית ברישיון MIT וללא תלות לעבודה עם קבצי Microsoft Outlook .msg, מכולות Compound File Binary (CFB) והודעות EML. הוסף חבילה NuGet אחת והתחל מיד לקרוא, ליצור ולעבד הודעות דוא"ל ללא צורך בהתקנת Microsoft Outlook או זמן ריצה קנייני.

הספרייה מספקת שני רמות של גישה. ברמה הנמוכה, CfbReader ו-CfbWriter נותנים שליטה מלאה על מכולות בינריות CFB — נווט ברשומות הספרייה, קרא וכתוב צמתים של אחסון ונתוני זרם, ובדוק את פריסת הסקטורים הגולמית. MsgReader ו-MsgWriter מטפלים בפורמט MSG על גבי CFB, חושפים זרמי מאפייני MAPI, טבלאות נמען, ותתי‑אחסונים של קבצים מצורפים. ברמה הגבוהה, MapiMessage מאפשר לך ליצור הודעות חדשות מאפס, לקרוא נושא, גוף, שולח ונמענים, לנהל קבצים מצורפים, ולהמיר בין פורמט MSG ל‑EML דרך מימוש MIME מובנה.

הספרייה ממקדת .NET 8.0 או גרסה מאוחרת יותר ואין לה תלותיות מקומיות, מה שהופך אותה למתאימה ל‑Windows, Linux, macOS, מכולות Docker ולפונקציות ללא שרת. לתכונות נוספות ולתמיכה מסחרית, ראה Aspose.Email for .NET.

קריאה וכתיבה של מכולת CFB

  • פתיחת קבצי CFB: טען מכולות CFB קיימות מנתיב קובץ, זרם, או מערך בתים דרך CfbReader.FromFile(), CfbReader.FromStream(), או new CfbReader(data).
  • עבור על עץ הספריות: חזור על אחסונים, זרמים וילדים באמצעות IterStorages(), IterStreams(), IterChildren() ו-IterTree().
  • פתור נתיבים: נווט במבני אחסון מקוננים עם ResolvePath(names) כדי לאתר זרם ספציפי לפי שרשרת שמות.
  • כתיבת מכולות CFB: בניית מסמכי CFB באופן תכנותי עם CfbDocument וסריאליזציה לבייטים או לקובץ דרך CfbWriter.ToBytes() או CfbWriter.WriteFile().
  • הוסף אחסונים וזרמים: צרף את הצמתים CfbStorage ו-CfbStream לכל צומת אחסון לפני סריאליזציה.

היכן נעשה שימוש בגישה ל‑CFB

  • בדיקת קובץ MSG: CFB הוא פורמט המכולה לקבצי Outlook .msg — גישה ישירה ל‑CFB מאפשרת בדיקה פורנזית ותיקון.
  • פורמטים בינאריים מותאמים: כל יישום ישן המשתמש ב‑CFB לאחסון נתונים ניתן לקריאה או כתיבה ללא תלות ב‑COM.
  • שחזור נתונים: עבור על כל עץ הספריות המלא והוצא בתים גולמיים של זרם מקבצי CFB פגומים או לא תקניים.
  • Binary round-trip testing: סריאליזציה של מסמך לבייטים ולטעון אותו מחדש כדי לאמת סריאליזציה ללא אובדן בבדיקות אוטומטיות.

קריאה וכתיבה של קובץ MSG

  • קרא קבצי MSG: פתח קבצי Outlook MSG עם MsgReader.FromFile() או MsgReader.FromStream() וגישה לזרמי המאפיינים של MAPI, לרשומות הנמענים ולאחסונים המשניים של הקבצים המצורפים.
  • כתוב קבצי MSG: צור קבצי MSG מ-MsgDocument עם MsgWriter.ToBytes() או MsgWriter.WriteFile().
  • גישה ברמת נמוכה ל‑MAPI: קרא זרמי מאפייני רמה עליונה, מאפיינים בשם, ונתוני קבצים מצורפים דרך MsgStorage, MsgStream, ו-MsgStorage.FindStream().
  • ניווט אחסון MSG: השתמש ב-MsgStorage.FindStream() וב-MsgStorage.FindStorage() כדי לאתר תתי-רשומות בשם.

היכן נעשה שימוש בעיבוד MSG

  • צינורות ארכיון של דוא"ל: קריאה גורפת של קבצי .msg מתיקיות ארכיון והוצאת מטא-נתונים או קבצים מצורפים.
  • כלי הגירה: המרת אוספי MSG לפורמטים סטנדרטיים לייבוא למערכות שאינן Outlook.
  • גילוי משפטי: פענח זרמי נכסי MAPI גולמיים כדי לחלץ את כל שדות ההודעה כולל מאפיינים לא סטנדרטיים.
  • מסירת דוחות אוטומטית: צור קבצי .msg באופן תכנותי והעבר אותם למערכות דואר מבוססות Outlook.

API של הודעות ברמה גבוהה

  • צור הודעות: בנה אימייל שלם עם MapiMessage.Create(subject, body), הגדר SenderName, SenderEmailAddress, ו-HtmlBody.
  • הוסף נמענים: צרף To, Cc ו-Bcc נמענים דרך AddRecipient() עם כתובת דוא"ל ושם תצוגה.
  • ניהול קבצים מצורפים: הוסף קבצים וקבצי זרם מצורפים עם AddAttachment() או צור עצמים MapiAttachment ישירות עם Filename, MimeType, ContentId, ו-Data.
  • שמור וטעינה מחדש: סיראליזציה עם message.Save() או message.Save(stream) וטעינה מחדש עם MapiMessage.FromFile() או MapiMessage.FromStream().

היכן נעשה שימוש ב‑API ברמה גבוהה

  • יצירת דוא"ל אוטומטית: צור אלפי קבצי MSG מותאמים אישית מרשומות נתונים בעבודות אצווה.
  • יצירת קיבוע בדיקה: בניית קבצי MSG ידועים-טובים עם תוכן צפוי למערכי מבחן אינטגרציה.
  • חילוץ קבצים מצורפים: טען קובץ MSG, חזור על message.Attachments, ושמור כל attachment.Data לדיסק.
  • בדיקת נכס: גישה message.Subject, message.Body, message.SenderEmailAddress, ו-message.Recipients ללא אוטומציית COM.

המרת EML ו‑MIME

  • טען EML ל-MapiMessage: פענח קובץ .eml סטנדרטי (RFC 5322 / MIME) לאובייקט MapiMessage מלא דרך MapiMessage.LoadFromEml(stream).
  • Save MapiMessage as EML: סריאליזציה של MapiMessage חזרה לפורמט MIME עם message.SaveToEml() או message.SaveToEml(stream).
  • אמינות נסיעה הלוך ושוב: נושא, גוף, HTML גוף, שולח, נמענים וקבצים מצורפים נשמרים כולם במהלך נסיעות EML → MSG → EML.
  • אין מפענח MIME חיצוני: פענוח EML מיושם באופן מקורי בתוך הספרייה — אין צורך בתלות System.Net.Mail.

היכן נעשה שימוש בהמרת EML

  • גשר פורמט: קבל הודעות דוא"ל כ-EML משרתי דוא"ל והמר ל-MSG לאחסון תואם ל-Outlook.
  • תאימות לתקנים: המרת קבצי MSG קנייניים ל‑MIME תקני לצורך משלוח לכל תשתית דואר.
  • נרמול ארכיון: נרמל ארכיון מעורב של קבצי .eml ו-.msg לפורמט יחיד.
  • בדיקת זרימות עבודה: צור .eml fixtures בבדיקות וודא שהם שורדים סיבוב MSG ללא אובדן נתונים.

קרא את הנושא מקובץ MSG

פתח קובץ Outlook MSG מזרם והדפס את הנושא — אין צורך ב-Microsoft Outlook.

using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

צור ושמור הודעת MSG

בנה דוא"ל שלם עם השולח, הנמען והקובץ המצורף, ואז כתוב אותו לקובץ MSG.

using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);

המרת EML ל‑MSG

טען קובץ .eml סטנדרטי ושמור אותו כקובץ Outlook .msg באמצעות מפענח MIME המובנה.

using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
  

משאבי תמיכה ולמידה

 עברית