קריאת קבצי MBOX

יכולות קריאת Aspose.Email

Mozilla Thunderbird הוא לקוח דוא"ל בקוד פתוח, חוצה פלטפורמות, שפותח על ידי קרן Mozilla. הוא מאחסן אימיילים במבנה קבצים משלו, מנהל אינדקסי הודעות ותתי תיקיות באמצעות פורמטים קבצים קניינים. Thunderbird יוצר קובץ .mbox אחד לכל תיקיית דוא"ל (למשל, Inbox, Sent, Trash), ושומר קבצים אלו בספריית הפרופיל של המשתמש. כל קובץ מכיל את כל ההודעות מאותה תיקייה בצורה משולבת.

Aspose.Email for .NET מספק API לקריאת הודעות מקבצי .mbox של Thunderbird באמצעות ה MboxrdStorageReader מחלקה שמאפשרת למפתחים:

  • פתח וקרא הודעות ברצף, אחת אחר אחת
  • קבל מטה-נתונים כמו נושא, משגר, נמענים, תאריך וכו’, מבלי לטעון את התוכן המלא
  • חלץ הודעות בודדות באמצעות מזהים ייחודיים (EntryId)
  • שמור קידוד, קבצים מצורפים מסוג TNEF, ועיצוב
  • קרא קבצים באופן אסינכרוני לשיפור ביצועים בארכיונים גדולים

קרא קובצי MBOX סינכרונית

קרא הודעות מקובץ אחסון הדואר של Mozilla Thunderbird. מאמר זה מראה כיצד לקרוא את ההודעות מאחסון הדואר של Thunderbird:

  1. פתח את קובץ האחסון של Thunderbird ב-FileStream.
  2. צור מופע של MboxrdStorageReader המחלקה והעבר את הזרם למעלה לבנאי.
  3. קרא ReadNextMessage() כדי לקבל את ההודעה הראשונה.
  4. השתמש באותו ReadNextMessage() במחזור while לקריאת כל ההודעות.
  5. סגור את כל הזרמים.

קטע הקוד הבא מציג כיצד לקרוא את כל ההודעות מאחסון הדואר של Thunderbird.

// The path to the File directory.
var dataDir = RunExamples.GetDataDir_Thunderbird();

// Open the storage file with FileStream
var stream = new FileStream(dataDir + "ExampleMbox.mbox", FileMode.Open, FileAccess.Read);
// Create an instance of the MboxrdStorageReader class and pass the stream
var reader = new MboxrdStorageReader(stream, false);
// Start reading messages
var message = reader.ReadNextMessage();

// Read all messages in a loop
while (message != null)
{
    // Manipulate message - show contents
    Console.WriteLine("Subject: " + message.Subject);
    // Save this message in EML or MSG format
    message.Save(message.Subject + ".eml", SaveOptions.DefaultEml);
    message.Save(message.Subject + ".msg", SaveOptions.DefaultMsgUnicode);

    // Get the next message
    message = reader.ReadNextMessage();
}

// Close the streams
reader.Dispose();
stream.Close();

קרא קובצי MBOX אסינכרונית

כדי לשפר ביצועים ותגובתיות בעת עיבוד קבצי MBOX גדולים, Aspose.Email for .NET מספק קריאת MBOX אסינכרונית באמצעות ה CreateReaderAsync שיטה. תכונה זו שימושית במיוחד באפליקציות שמטפלות בארכיוני אימייל גדולים או מריצות פעולות תלויות קלט/פלט בחוטים ברקע או שירותי אינטרנט. דוגמת הקוד למטה מראה כיצד לקרוא הודעות דוא"ל מקובץ MBOX באופן אסינכרוני באמצעות קורא האחסון של Aspose.Email:

string mboxFilePath = "emails.mbox";

    // Create a reader for the MBOX file asynchronously
    using (var reader = await MboxrdStorageReader.CreateReaderAsync(mboxFilePath, CancellationToken.None))
    {
    Console.WriteLine("MBOX reader initialized.");

    // Read messages from the MBOX file
        while (reader.ReadNextMessage() is var message && message != null)
        {
            Console.WriteLine($"Subject: {message.Subject}");
        }
    }

קרא הודעות דוא"ל בחבילות עם תמיכה בעימוד

קבל גישה בעמודים להודעות המאוחסנות בקבצי תיבת דואר. תכונה זו מאפשרת למפתחים לעבד ארכיוני אימייל גדולים בצורה יעילה יותר על ידי קבלת הודעות בחלקים קטנים יותר - משפרת את הביצועים ומפחיתה עומס זיכרון. השתמש בשיטות הבאות של ה MboxStorageReader מחלקה:

דוגמת הקוד למטה מציגה כיצד לקרוא טווח ספציפי של הודעות מארכיון דואר על ידי הגדרת אינדקס התחלה וגודל קבוצה. בדוגמה, המתודה מחזירה 10 הודעות החל מאינדקס 0.

using Aspose.Email.Storage.Mbox;
using Aspose.Email;

var reader = MboxStorageReader.CreateReader("input.mbox", new MboxLoadOptions());
int startIndex = 0;
int count = 10; // Retrieve messages in batches of 10

foreach (var message in reader.EnumerateMessages(startIndex, count))
{
    Console.WriteLine("Subject: " + message.Subject);
}

הגדר קידוד טקסט מועדף בעת טעינת קבצי MBOX לקריאה

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

var reader = new MboxrdStorageReader("sample.mbox", new MboxLoadOptions() { PreferredTextEncoding = Encoding.UTF8});
var message = reader.ReadNextMessage();

קבלת מספר כולל של הודעות מקבצי MBOX

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

// The path to the File directory.
var dataDir = RunExamples.GetDataDir_Thunderbird();

using (var stream = new FileStream(dataDir + "ExampleMbox.mbox", FileMode.Open, FileAccess.Read))
using (var reader = new MboxrdStorageReader(stream, false))
{
    Console.WriteLine("Total number of messages in Mbox file: " + reader.GetTotalItemsCount());
}

קבל את גודל ההודעה הנוכחי

using (var stream = new FileStream(dataDir + "ExampleMbox.mbox", FileMode.Open, FileAccess.Read))
using (var reader = new MboxrdStorageReader(stream, false))
{
    MailMessage msg;
    while ((msg = reader.ReadNextMessage()) != null)
    {
        long currentDataSize = reader.CurrentDataSize;

        msg.Dispose();
    }
}