How to Fetch Email Messages from IMAP Server & Save it as EML, MSG inside .NET A
This technical tip explains how .NET developers can fetch email messages from IMAP server and save it to disk in different formats. The first example shows how to fetch email messages from a server and save them, in EML format, to disk. The following steps are required to save the messages to disk:
<br/>
<br/>
• Create an instance of the ImapClient class.
<br/>
• Specify hostname, username and password in the ImapClient constructor.
<br/>
• Select the folder using SelectFolder() method.
<br/>
• Call the ListMessages() method to get the ImapMessageInfoCollection object.
<br/>
• Iterate through the ImapMessageInfoCollection collection, call the SaveMessage() method and provide the output path and file name.
<br/>
<br/>
To save emails in MSG format, the ImapClient.FetchMessage() method needs to be called. It returns the message in an instance of the MailMessage class. The MailMessage.Save() method can then be called to save the message to MSG. Aspose.Email provides a 2-member overloaded variant of ListMessages to retrieve a specified number of messages based on a query. The IMAP protocol supports listing messages recursively from a mailbox folder.
//your code here...The code samples below show how to fetch email messages from a server and save them, in EML format, to disk.
//[C# Code Sample]
// Select the inbox folder
client.SelectFolder(ImapFolderInfo.InBox);
// Get the message info collection
ImapMessageInfoCollection list = client.ListMessages();
// Download each message
for (int i = 0; i < list.Count; i++)
{
//Save the EML file locally
client.SaveMessage(list[i].UniqueId, "c:\\temp\\" + list[i].UniqueId + ".eml");
}
//[VB.NET Code Sample]
' Select the inbox folder
client.SelectFolder(ImapFolderInfo.InBox)
' Get the message info collection
Dim list As ImapMessageInfoCollection = client.ListMessages()
' Download each message
Dim i As Integer = 0
Do While i < list.Count
'Save the EML file locally
client.SaveMessage(list(i).UniqueId, "c:\temp\" & list(i).UniqueId & ".eml")
i += 1
Loop
//Saving Messages from IMAP Server in MSG Format
//[C# Code Sample]
// Select the inbox folder
client.SelectFolder(ImapFolderInfo.InBox);
// Get the message info collection
ImapMessageInfoCollection list = client.ListMessages();
// Download each message
for (int i = 0; i < list.Count; i++)
{
// Save the message in MSG format
MailMessage msg = client.FetchMessage(list[i].UniqueId);
Msg.Save(list[i].UniqueId + ".msg", MailMessageSaveType.OutlookMessageFormat);
}
//[VB.NET Code Sample]
' Select the inbox folder
client.SelectFolder(ImapFolderInfo.InBox)
' Get the message info collection
Dim list As ImapMessageInfoCollection = client.ListMessages()
' Download each message
Dim i As Integer = 0
Do While i < list.Count
' Save the message in MSG format
Dim msg As MailMessage = client.FetchMessage(list(i).UniqueId)
Msg.Save(list(i).UniqueId & ".msg", MailMessageSaveType.OutlookMessageFormat)
i += 1
Loop
//List Messages with Maximum Number of Messages
//[C# Code Sample]
imapClient.SelectFolder("Inbox");
ImapQueryBuilder builder = new ImapQueryBuilder();
MailQuery query =
builder.Or(
builder.Or(
builder.Or(
builder.Or(
builder.Subject.Contains(" (1) "),
builder.Subject.Contains(" (2) ")),
builder.Subject.Contains(" (3) ")),
builder.Subject.Contains(" (4) ")),
builder.Subject.Contains(" (5) "));
ImapMessageInfoCollection messageInfoCol4 = imapClient.ListMessages(query, 4);
Console.WriteLine((messageInfoCol4.Count == 4) ? "Success" : "Failure");
//[VB.NET Code Sample]
ImapClient client = new ImapClient();
client.Host = "domain.com";
client.Username = "username";
client.Password = "password";
client.SelectFolder("InBox");
ImapMessageInfoCollection msgsColl = client.ListMessages(true);
Console.WriteLine("Total Messages: " + msgsColl.Count);
Url: http://www.aspose.com/.net/email-component.aspx
Language: C# | User: Sheraz Khan | Created: Mar 11, 2015 | Tags: save Messages from IMAP Server in MSG .NET Email component Fetch Messages from IMAP Server convert Email Messages to EML Email Messages to MSG Connect to an Exchange Server List Messages with Maximum Number