טען ושמור הודעת אימייל

טען הודעת אימייל

טען מ‑EML

קטע זה מתאר כיצד לטעון קובץ EML למשתנה MailMessage באמצעות EmlLoadOptions class. מחלקת EmlLoadOptions מספקת אפשרויות שונות להתאמה של אופן טעינת קובץ EML, כגון שמירת פורמטים של הודעות משובצות או שליטה בהתנהגות טעינת קבצים מצורפים בפורמט TNEF.

  1. אתחל מופע של EmlLoadOptions.
  2. קבע את אפשרויות הטעינה לפי הצורך.
  3. השתמש ב- MailMessage.Load() מתודה לטעינת קובץ EML עם האפשרויות המצוינות.
using Aspose.Email;

// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Control TNEF attachment loading
    RemoveSignature = false // Do not remove the signature
};

// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);

מאפייני EmlLoadOptions

  • PreferredTextEncoding: מגדיר את הקידוד המועדף עבור נושא ההודעה והגוף. ברירת המחדל היא null.
  • PreserveEmbeddedMessageFormat: מציין האם לשמר את פורמט ההודעות המשובצות בעת הטעינה. ברירת המחדל היא false.
  • PreserveTnefAttachments: שולט בהתנהגות טעינת קבצים מצורפים בפורמט TNEF. ברירת המחדל היא false.
  • RemoveSignature: מציין אם יש להסיר את החתימה בעת הטעינה. ברירת המחדל היא false.

שמר פורמט הודעה משובצת

טעינת הודעה עם חתימה/ללא חתימה

שמירת החתימה נתמכת כברירת מחדל בעת טעינת קובצי EML. כדי להסיר את החתימה, ניתן להגדיר את LoadOptions.RemoveSignature מאפיין ל‑true.

דוגמא הקוד למטה מציגה כיצד להסיר חתימה בעת טעינת הודעה:

var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

טעינה מ-EMLX

הסעיף הבא מכסה טעינת קובץ EMLX באמצעות EmlxLoadOptions מחלקה. מחלקה זו מספקת אפשרויות דומות ל-EmlLoadOptions, כולל שליטה על קידוד, הסרת חתימה, ועוד.

  1. צור מופע של EmlxLoadOptions.
  2. הגדר מאפיינים כפי שנדרש.
  3. השתמש ב- MailMessage.Load() מתודה לטעון את קובץ ה-EMLX.
using Aspose.Email;

// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);

מאפייני EmlxLoadOptions

  • PreferredTextEncoding: מגדיר קידוד מועדף עבור נושא ההודעה והגוף. ברירת המחדל היא null.
  • PreserveEmbeddedMessageFormat: מציין האם לשמר את פורמט ההודעות המשובצות. ברירת המחדל היא false.
  • RemoveSignature: מציין אם להסיר את החתימה בעת הטעינה. ברירת המחדל היא false.

טעינה מ-HTML

למד כיצד לטעון קובץ HTML לתוך MailMessage באמצעות HtmlLoadOptions מחלקה. מחלקה זו נועדנית במיוחד לטיפול בתוכן HTML עם אפשרויות לניהול משאבים ולהוספת תצוגות טקסט פשוט.

  1. אתחל מופע של HtmlLoadOptions.
  2. הגדר את המאפיינים הדרושים.
  3. השתמש ב- MailMessage.Load() מתודה לטעון את קובץ ה-HTML עם האפשרויות שצוינו.
using Aspose.Email;

// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
    // Configure load options
    PathToResources = "resources/", // Path to directory containing resource files
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    ShouldAddPlainTextView = true // Add plain text view of the body
};

// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);

מאפייני HtmlLoadOptions

  • PathToResources: מגדיר את הנתיב לתיקייה המכילה קבצי משאבים (תמונות, לדוגמה).
  • PreferredTextEncoding: מגדיר את הקידוד המועדף עבור נושא ותוכן ההודעה. ברירת המחדל היא null.
  • PreserveEmbeddedMessageFormat: קובע האם לשמור על פורמט ההודעות המוטמעות. ברירת המחדל היא false.
  • ShouldAddPlainTextView: מציין אם להוסיף תצוגת טקסט פשוט של גוף ההודעה. ברירת המחדל היא false.

טעינה מ-MHTML

סעיף זה מסביר כיצד לטעון קובץ MHTML באמצעות MhtmlLoadOptions מחלקה. המחלקה MhtmlLoadOptions מציעה אפשרויות לניהול קידוד, שמירת פורמט הודעות מוטמעות, וטיפול בקבצים מצורפים של TNEF.

  1. צור מופע של MhtmlLoadOptions.
  2. הגדר את המאפיינים הרצויים.
  3. טען את קובץ ה-MHTML באמצעות ה- MailMessage.Load() שיטה.
using Aspose.Email;

// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
    // Set load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false // Keep the signature
};

// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);

מאפייני MhtmlLoadOptions

  • MessageFormat: מייצג את פורמט הודעת הדוא"ל, שיכול להיות EML, MSG או MHTML. ברירת המחדל היא EML.
  • PreferredTextEncoding: מגדיר קידוד מועדף עבור נושא ההודעה והגוף. ברירת המחדל היא null.
  • PreserveEmbeddedMessageFormat: קובע האם לשמור על פורמט ההודעות המוטמעות. ברירת המחדל היא false.
  • PreserveTnefAttachments: שולט בהתנהגות טעינת קבצים מצורפים בפורמט TNEF. ברירת המחדל היא false.
  • RemoveSignature: מציין אם להסיר את החתימה בעת הטעינה. ברירת המחדל היא false.

טעינה מ-MSG

סעיף זה מסביר כיצד לטעון קובץ MSG לתוך אובייקט MailMessage באמצעות MsgLoadOptions מחלקה. המחלקה MsgLoadOptions מציעה מגוון מאפיינים לניהול אופן הטעינה של קובצי MSG, כולל אפשרויות לשמירת תוכן RTF או ניהול קבצים מצורפים של TNEF.

  1. צור מופע של MsgLoadOptions.
  2. הגדר את המאפיינים הרצויים כדי להתאים את הטעינה.
  3. טען את קובץ ה‑MSG באמצעות ה‑ MailMessage.Load() שיטה.
using Aspose.Email;

// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
    // Set load options
    KeepOriginalEmailAddresses = true, // Preserve original email addresses
    PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
    PreserveRtfContent = true, // Keep RTF content in the message
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false, // Keep the signature
    Timeout = 5000 // Set timeout to 5 seconds
};

// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);

מאפייני MsgLoadOptions

  • KeepOriginalEmailAddresses: מציין האם לשמור על כתובות אימייל מקוריות. ברירת המחדל היא false.
  • PreferredTextEncoding: מגדיר את הקידוד המועדף עבור נושא ותוכן ההודעה. ברירת המחדל היא null.
  • PreserveEmbeddedMessageFormat: קובע אם יש לשמור על פורמט ההודעות המוטמעות. ברירת המחדל היא false.
  • PreserveRtfContent: מציין האם לשמור את תוכן הגוף בפורמט RTF ב MailMessage. ברירת המחדל היא false.
  • PreserveTnefAttachments: מנהל את התנהגות טעינת הקבצים המצורפים של TNEF. ברירת המחדל היא false.
  • RemoveSignature: מחליט האם להסיר את החתימה בזמן הטעינה. ברירת המחדל היא false.
  • זמן קצוב: מגביל את זמן העיצוב במילישניות במהלך ההמרה. ברירת המחדל היא 3000 מ״ש.

טעינה מ‑TNEF

למד כיצד לטעון קובץ TNEF eml עם TnefLoadOptions class. מחלקה זו מספקת אפשרויות לניהול קידוד והסרת חתימות במהלך תהליך הטעינה.

  1. צור מופע של TnefLoadOptions.
  2. קבע את המאפיינים לפי הצורך.
  3. השתמש ב- MailMessage.Load() מתודה לטעינת קובץ TNEF.
using Aspose.Email;

// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);

מאפייני TnefLoadOptions

  • MessageFormat: מייצג את פורמט הודעת המייל, כגון EML, MSG או MHTML. ברירת המחדל היא EML.
  • PreferredTextEncoding: מגדיר קידוד מועדף עבור נושא ההודעה והגוף. ברירת המחדל היא null.
  • PreserveEmbeddedMessageFormat: מציין האם לשמר את פורמט ההודעות המשובצות. ברירת המחדל היא false.
  • RemoveSignature: מציין אם להסיר את החתימה בעת הטעינה. ברירת המחדל היא false.

אבחון פורמטים של קבצים

ה-API של Aspose.Email מספק את היכולת לאתר את פורמט הקובץ של קובץ ההודעה המסופק. ה DetectFileFormat מתודה של FileFormatUtil ניתן להשתמש במחלקה זו כדי להשיג זאת. ניתן להשתמש במחלקות ובשיטות הבאות כדי לאתר את פורמט הקובץ שנטען.

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

שמירה והמרת הודעות

Aspose.Email מקלה על המרת כל סוג הודעה לפורמט אחר. כדי להדגים תכונה זו, הקוד במאמר זה טוען שלושה סוגי הודעות מהדיסק ושומר אותם בחוזר בפורמטים אחרים. מחלקת הבסיס SaveOptions והמחלקות EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions להגדרות נוספות בעת שמירה MailMessage ניתן להשתמש בו לשמירת הודעות לפורמטים אחרים. המאמר מראה כיצד להשתמש במחלקות אלה כדי לשמור דואר דוגמה כ:

  • פורמט EML.
  • Outlook MSG.
  • פורמט MHTML.
  • פורמט HTML.

שמירה ל-EML

קטע הקוד הבא מראה כיצד לטעון הודעת EML ולשמור אותה לדיסק באותו פורמט.

שמר את הגבולות המקוריים

קטע הקוד הבא מראה כיצד לטעון EML ולשמור כ-EML תוך שמירה על הגבולות המקוריים.

שמר קבצים מצורפים של TNEF

קטע הקוד הבא מראה כיצד לשמור כ-EML תוך שמירה על צרופות TNEF.

שמור EML כ-MSG

קוד הקטע הבא מציג כיצד לטעון הודעת EML ולהמיר אותה ל‑MSG באמצעות האפשרות המתאימה מ- SaveOptions.

שמר תאריכים

ה MsgSaveOptions המחלקה מאפשרת לך לשמור את הודעת המקור כקובץ Outlook Message (MSG) תוך שמירת תאריכים. הקטע הקוד הבא מראה כיצד לשמור כ‑MSG עם תאריכים משומרים.

שמור EML ל‑MHTML

ניתן להשתמש באפשרויות שונות של MHTML כדי לקבל את התוצאות הרצויות. קטע הקוד הבא מראה כיצד לטעון הודעת EML לתוך MailMessage ולהמיר אותה ל‑MHTML עם תאריך ההודעה במערכת UTC.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET

// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date

// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
    mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}

אפשרויות המרה

ה MhtSaveOptions המחלקה מספקת אפשרויות נוספות לשמירת הודעות דוא"ל בפורמט MHTML. המונה MhtFormatOptions מאפשר לכתוב מידע נוסף על האימייל לקובץ ה‑MHTML הפלט. השדות הנוספים הבאים ניתנים לכתיבה:

  • WriteHeader – כותב את כותרת האימייל לקובץ הפלט.
  • WriteOutlineAttachments – כותב קבצי מתאר לקובץ הפלט.
  • WriteCompleteEmailAddress – כותב את כתובת האימייל המלאה לקובץ הפלט.
  • NoEncodeCharacters – אין להשתמש בקידוד העברת תווים.
  • HideExtraPrintHeader – מסתיר כותרת הדפסה נוספת בראש הקובץ.
  • WriteCompleteToEmailAddress – כותב את כתובת האימייל המלאה של הנמען לקובץ הפלט.
  • WriteCompleteFromEmailAddress – כותב את כתובת האימייל המלאה של השולח לקובץ הפלט.
  • WriteCompleteCcEmailAddress – כותב את כתובות האימייל המלאות של כל הנמענים שהוכנסו ב‑CC לקובץ הפלט.
  • WriteCompleteBccEmailAddress – כותב את כתובת האימייל המלאה של כל הנמענים שהוכנסו ב‑BCC לקובץ הפלט.
  • RenderCalendarEvent – כותב טקסט מאירוע לוח השנה לקובץ הפלט.
  • SkipByteOrderMarkInBody – כותב בתים של Byte Order Mark (BOM) לקובץ הפלט.
  • RenderVCardInfo – כותב טקסט מ‑VCard AlternativeView לקובץ הפלט.
  • DisplayAsOutlook – מציג כותרת From.
  • RenderTaskFields – כותב שדות משימה ספציפיים לקובץ הפלט.
  • None – לא צוינה הגדרה.

קטע הקוד הבא מראה כיצד להמיר קבצי EML ל-MHTML עם הגדרות אופציונליות.

הצגת אירועי לוח שנה

ה MhtFormatOptions.RenderCalendarEvent מציג את אירועי היומן ל‑output MHTML. הקטע הקוד הבא מראה לך כיצד לייצר אירועי לוח שנה בזמן המרה ל-MHTML.

ייצוא אימייל ל‑MHT ללא תמונות משולבות

ייצוא דוא"ל ל-MHT עם אזור זמן מותאם

MailMessage class מספקת את TimeZoneOffset מאפיין להגדיר אזור זמן מותאם אישית בעת ייצוא ל-MHT. הקטע קוד הבא מראה כיצד לייצא מייל ל-MHT עם אזור זמן מותאם.

התאמת גופן

שמור EML ל‑HTML

ה HtmlSaveOptions מחלקה המאפשרת לייצא את גוף ההודעה ל-HTML. הקטע קוד הבא מראה כיצד לשמור הודעה כ-HTML.

שמור ללא משאבים מוטבעים

שמור EML ל‑OFT

הקטע קוד הבא מראה כיצד לשמור הודעה כקובץ תבנית Outlook (.oft).

המרת EML ל‑MSG (MailMessage ל‑MapiMessage)

כדי להמיר MailMessage אובייקט שנטען מקובץ EML ל‑ MapiMessage אובייקט, השתמש ב‑ MapiConversionOptions מחלקה. המרה זו נדרשת לעיתים קרובות מכיוון שהאובייקטים הללו משמשים למטרות שונות ומגיבים לצרכים שונים בעיבוד דוא"ל. MapiMessage מיועדת במיוחד לתאימות עם Microsoft Outlook ו‑Exchange Server, מכיוון שהיא מתיישרת עם פורמט Messaging Application Programming Interface (MAPI). זה מבטיח שהודעות דוא"ל מומרות לקבצי MSG יהיו תואמות במלואן עם מוצרי Microsoft, ויאפשרו לפתוח, לשנות ולנהל אותן ישירות ב‑Outlook.

המרה זו נדרשת גם כאשר יש לארכב, למדרג או לעבד הודעות דוא"ל על ידי אחסונים הדורשים פורמט MAPI, אחסוני PST/OST, OLM, לדוגמה. ה MapiConversionOptions המחלקה מאפשרת לך לציין אפשרויות נוספות, כגון שמירת פורמט ההודעה המקורי, שמירת התאריכים המקוריים, וכיווץ גוף ה‑RTF במהלך ההמרה. דוגמת הקוד הבאה מראה כיצד לטעון דוא"ל מקובץ בפורמט .eml ולהמיר אותו לפורמט Outlook .msg, המאפשר התאמה אישית אך מבטיחה ששמורות תכונות מסוימות של הדוא"ל המקורי במהלך ההמרה.

  1. צור מופע של MapiConversionOptions ולקבוע את המאפיינים שלו.
  2. המר את MailMessage אובייקט ל MapiMessage אובייקט המשתמש באפשרויות ההמרה המוגדרות.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());

// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
    // Configure MapiConversionOptions
    Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
    PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
    PreserveOriginalAddresses = true, // Keep original email addresses
    PreserveOriginalDates = true, // Preserve original dates
    PreserveEmptyDates = false, // Generate new dates if original are empty
    RemoveSignature = false, // Do not remove the signature
    UseBodyCompression = true, // Enable RTF body compression
    ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};

// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);

תכונות זמינות של MapiConversionOptions

  • ASCIIFormat: מחזיר MapiConversionOptions מוגדר עם OutlookMessageFormat כעבור ASCII, עם PreserveSignature הגדר ל‑false ו‑ UseBodyCompression הגדר ל‑false. אפשרות זו שימושית כאשר נדרשת המרת פורמט ASCII פשוט.

  • UnicodeFormat: מחזיר MapiConversionOptions עם OutlookMessageFormat הגדר ל‑Unicode, ו‑both PreserveSignature ו UseBodyCompression הגדר ל‑false. השתמש באפשרות זו לתמיכה מקיפה יותר בתווים בקבצי MSG.

  • ForcedRtfBodyForAppointment: כאשר מוגדר כ‑true, גורם לשימוש בגוף RTF לפגישות בלוח השנה. זה יעיל אם ברצונך להבטיח תאימות עם לקוחות אימייל מסוימים. ברירת המחדל היא true.

  • Format: מציין את פורמט הפלט של קובץ MSG. ניתן להגדירו לאחד מ‑ OutlookMessageFormat.ASCII או OutlookMessageFormat.Unicode, קובע האם ה‑MSG המומר ישתמש בקידוד ASCII או Unicode.

  • PreserveEmbeddedMessageFormat: קובע האם לשמר את פורמט ה‑EML המקורי של הודעות מוטמעות במהלך ההמרה ל MapiMessage. הגדרת ערך זה ל‑true מבטיחה שהודעות מוטמעות ישמרו על המבנה המקורי שלהן. ברירת המחדל היא false.

  • PreserveEmptyDates: כאשר מוגדר כ‑true, משמר את תאריכי השמירה והשינוי המקוריים מה‑EML. אחרת, יווצרו תאריכים חדשים אם המקוריים ריקים.

  • PreserveOriginalAddresses: אם מוגדר כ‑true, משמר את כתובות האימייל המקוריות ללא וידוא. זה שימושי כשעובדים עם כתובות שעשויות לא לעמוד בתקנים מחמירים אך נדרשות להישמר כפי שהן. ברירת המחדל היא false.

  • PreserveOriginalDates: מבטיח שהתאריכים המקוריים של שליחה וקבלה יישמרו במהלך תהליך ההמרה. הגדרה ל‑true משמרת תאריכים אלה לדיוק היסטורי טוב יותר.

  • RemoveSignature: שולט האם החתימה הדיגיטלית, אם קיימת, תוסר מההודעה במהלך ההמרה. ברירת המחדל היא false, כלומר החתימה תישמר אלא אם תוסר במפורש.

  • UseBodyCompression: מאפשר דחיסת גוף RTF אם מוגדר כ‑true. זה יכול לעזור לצמצם את גודל קובץ MSG, במיוחד עבור הודעות גדולות עם עיצוב עשיר.