Creating Mbox Files using C# .NET

With the growing use of email as a fast and efficient means of communication, software developers have to be able to process an enormous amount of messages to create productive and well-functioning products such as apps, email clients etc. As a developer, you may encounter scenarios where you need to manipulate email data programmatically, such as exporting or archiving messages. One common file format for message storage is Mbox, which is widely used by various email clients including Thunderbird, Apple Mail and others. In this article, we will learn about this format, its structure and characteristics, explore how to create Mbox format files in C# and provide you with practical code samples to get you started.

Mbox Format: Structure and Characteristics

Files in Mbox format are email messages stored as a plain text which makes them human-readable and editable with a text editor. This simplicity contributes to the format’s wide compatibility and facilitates direct access to the message content. Archiving multiple emails in a single file makes them efficient for storage and retrieval.

Each message is separated by a special delimiter, commonly known as the “From " line (note the space after “From”). This line marks the beginning of a new message and helps distinguish between individual messages within the file.

It’s worth noting that Mbox files primarily focus on storing the textual content of email messages. They do not directly store attachments. Instead, attachments are typically saved separately and referenced within the message using appropriate MIME headers.

Over time, different variations of the Mbox format have emerged, including mboxo (where the “From " line is preceded by a newline character), mboxrd (which supports folder hierarchies), and mboxcl2 (which includes additional indexing information). It’s essential to consider these variants when working with specific email clients or applications that utilize customized Mbox implementations.

C# API to Create and Manipulate Files in Mbox Format

To work with mbox format in C#, we will use Aspose.Email for .NET. It is a valuable tool for developers working with files of various formats, providing a wide range of functionalities for creating and processing emails. By leveraging our library, developers gain a comprehensive set of tools and features to create, manipulate, and access mbox email data efficiently. To start using the API, it is possible to either download its DLL or install it from NuGet using the following command:

PM> Install-Package Aspose.Email

Creating Mbox Files

To begin exploiting Aspose.Email library for working with Mbox format, first, learn to create a new message with the MboxrdStorageWriter class. The following code sample will demonstrate how to create a new file:

Adding EML files to Mbox File

To add EML files from a folder to an existing message storage, we’re going to use the MboxrdStorageWriter class from the Aspose.Email library. The following steps and a code sample will demonstrate how to add EML files to a Mbox file:

  1. We first specify the path to the existing file and the path to the folder containing EML files.
  2. We then iterate over each EML file using Directory.GetFiles to get all of them in the specified folder. For each EML file, we load it into a MailMessage object using the MailMessage.Load method.
  3. Finally, we use the WriteMessage method of the MboxrdStorageWriter to add the message to the Mbox file.

Open Mbox Files in Thunderbird

Thunderbird is a popular open-source email client with extensive functionalities and the ability to operate across different platforms. If you have Mbox format files containing email messages, you can always access them using Thunderbird. The client provides native support for opening and importing storage files, making it a convenient option for managing your email data.

Opening this type of files in Thunderbird client allows you to access and view the contents of created files within the user-friendly interface.

To open created Mbox files in Thunderbird client, follow these steps:

  1. Launch Thunderbird on your computer.
  2. Click on the “Menu” button (three horizontal lines) located at the top right corner of the Thunderbird window.
  3. From the dropdown menu, choose “Tools” and then click on “Import…” As an alternative method, you can also click “Alt” on your keyboard to display the traditional menu bar and navigate to “Tools” > “Import…”
  4. In the Import window, select the option “Import everything from an MBOX file” and click “Next.”
  5. Choose the file you want to open by clicking on the “Select File” button.
  6. Locate and select your file from the file explorer window, and then click on “Open.”
  7. It will be imported by Thunderbird. Click “Finish” to close the Import dialog box when the import process is complete.
  8. The imported file should now be visible in the Thunderbird client, listed as a new folder in the left-hand panel.
  9. You can now click on the imported folder to view its contents in Thunderbird.


In this article, we explored how to create and manage Mbox format files in C# programmatically. By leveraging Aspose.Email API, we were able to handle Mbox email archives, generating them from scratch or by appending messages to existing ones. We discovered a convenient format for storing email messages in a single file, making them easily portable and accessible.

Remember to adapt the code examples to suit your specific requirements. With this knowledge and the provided code samples, you can confidently create your C# applications and enhance your email-related functionalities.

Besides, you can explore how to work with several other email file formats and learn more about the API using documentation. In case of any ambiguity, please feel free to contact us on our free support forum.

See Also