Created
September 26, 2025 15:36
-
-
Save aspose-com-gists/0d40f47fed0cc335815cc5c6632d7051 to your computer and use it in GitHub Desktop.
Filter and Paginate MBOX Emails in C#
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var reader = MboxStorageReader.CreateReader("input.mbox", new MboxLoadOptions()); | |
// Filter: messages from a specific domain and sent this year | |
var mqb = new MailQueryBuilder(); | |
mqb.From.Contains("@example.com"); | |
mqb.SentDate.Since(new DateTime(DateTime.Today.Year, 1, 1)); | |
var query = mqb.GetQuery(); | |
// Page through message info (metadata only) | |
int pageSize = 5; | |
int index = 0; | |
bool done = false; | |
while (!done) | |
{ | |
var page = reader.EnumerateMessageInfo(query).Skip(index).Take(pageSize).ToList(); | |
if (page.Count == 0) | |
break; | |
foreach (var info in page) | |
{ | |
Console.WriteLine($"Subject: {info.Subject}, From: {info.From}, Date: {info.Date}"); | |
} | |
index += pageSize; | |
done = page.Count < pageSize; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var reader = MboxStorageReader.CreateReader("input.mbox", new MboxLoadOptions()); | |
// Build a query: subject contains "Project Update" and sent before today | |
var mqb = new MailQueryBuilder(); | |
mqb.Subject.Contains("Project Update"); | |
mqb.SentDate.Before(DateTime.Today); | |
var query = mqb.GetQuery(); | |
// Enumerate and display filtered messages | |
foreach (var message in reader.EnumerateMessages(query)) | |
{ | |
Console.WriteLine("Subject: " + message.Subject); | |
Console.WriteLine("Date: " + message.Date); | |
Console.WriteLine("From: " + message.From); | |
Console.WriteLine(new string('-', 40)); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var reader = MboxStorageReader.CreateReader("input.mbox", new MboxLoadOptions()); | |
int pageSize = 10; | |
int currentIndex = 0; | |
bool hasMore = true; | |
while (hasMore) | |
{ | |
var messages = reader.EnumerateMessages(currentIndex, pageSize); | |
int count = 0; | |
foreach (var message in messages) | |
{ | |
Console.WriteLine($"[Message {currentIndex + count + 1}] Subject: {message.Subject}"); | |
count++; | |
} | |
if (count < pageSize) | |
hasMore = false; // No more messages | |
currentIndex += pageSize; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment