How to Copy Message from One Mailbox Folder to Another in .NET Apps
This technical tip explains how .NET developers can Copy Message from one Mailbox folder to another. Aspose.Email API provides the capability to copy message from one mailbox folder to another. It allows copying a single as well as multiple messages using the CopyMessage and CopyMessages methods. The CopyMessages method provides the capability to copy multiple messages from source folder of a mailbox to the destination mailbox folder. The following code sample illustrates this by copying two messages.
//your code here...//Copying Multiple Messages From One Folder to Another
//[C# Code Sample]
using (ImapClient client = new ImapClient("exchange.aspose.com", "username", "password" ))
{
//create the destination folder
string folderName = "EMAILNET-35242";
if (!client.ExistFolder(folderName))
client.CreateFolder(folderName);
try
{
//Append a couple of messages to the server
MailMessage message1 = new MailMessage(
"asposeemail.test3@aspose.com",
"asposeemail.test3@aspose.com",
"EMAILNET-35242 - " + Guid.NewGuid().ToString(),
"EMAILNET-35242 Improvement of copy method.Add ability to 'copy' multiple messages per invocation.");
string uniqueId1 = client.AppendMessage(message1);
MailMessage message2 = new MailMessage(
"asposeemail.test3@aspose.com",
"asposeemail.test3@aspose.com",
"EMAILNET-35242 - " + Guid.NewGuid().ToString(),
"EMAILNET-35242 Improvement of copy method.Add ability to 'copy' multiple messages per invocation.");
string uniqueId2 = client.AppendMessage(message2);
//verify that the messages have been added to the mailbox
client.SelectFolder(ImapFolderInfo.InBox);
ImapMessageInfoCollection msgsColl = client.ListMessages();
foreach (ImapMessageInfo msgInfo in msgsColl)
Console.WriteLine(msgInfo.Subject);
//copy multiple messages using hte CopyMessages command
client.CopyMessages(new string[] { uniqueId1, uniqueId2 }, folderName, true);
//Verify that messages are copied to the destination folder
client.SelectFolder(folderName);
msgsColl = client.ListMessages();
foreach (ImapMessageInfo msgInfo in msgsColl)
Console.WriteLine(msgInfo.Subject);
}
finally
{
try {
client.DeleteFolder(folderName);
}
catch { }
}
}
//[VB.NET Code Sample]
Using client As New ImapClient("exchange.aspose.com", "username", "password")
'create the destination folder
Dim folderName As String = "EMAILNET-35242"
If Not client.ExistFolder(folderName) Then
client.CreateFolder(folderName)
End If
Try
'Append a couple of messages to the server
Dim message1 As New MailMessage("asposeemail.test3@aspose.com", "asposeemail.test3@aspose.com", "EMAILNET-35242 - " + Guid.NewGuid().ToString(), "EMAILNET-35242 Improvement of copy method.Add ability to 'copy' multiple messages per invocation.")
Dim uniqueId1 As String = client.AppendMessage(message1)
Dim message2 As New MailMessage("asposeemail.test3@aspose.com", "asposeemail.test3@aspose.com", "EMAILNET-35242 - " + Guid.NewGuid().ToString(), "EMAILNET-35242 Improvement of copy method.Add ability to 'copy' multiple messages per invocation.")
Dim uniqueId2 As String = client.AppendMessage(message2)
'verify that the messages have been added to the mailbox
client.SelectFolder(ImapFolderInfo.InBox)
Dim msgsColl As ImapMessageInfoCollection = client.ListMessages()
For Each msgInfo As ImapMessageInfo In msgsColl
Console.WriteLine(msgInfo.Subject)
Next
'copy multiple messages using hte CopyMessages command
client.CopyMessages(New String() {uniqueId1, uniqueId2}, folderName, True)
'Verify that messages are copied to the destination folder
client.SelectFolder(folderName)
msgsColl = client.ListMessages()
For Each msgInfo As ImapMessageInfo In msgsColl
Console.WriteLine(msgInfo.Subject)
Next
Finally
Try
client.DeleteFolder(folderName)
Catch
End Try
End Try
End Using
Url: http://www.aspose.com/.net/email-component.aspx
Language: C# | User: Sheraz Khan | Created: Jun 15, 2016 | Tags: Copy Message from Mailbox Copy multiple messages from one folder to another copy messages from source folder .NET Email component .NET Outlook API