Move emails to different folder with IMAP
This article describes how to move email messages from one folder (mailbox) to another using Mail.dll .NET IMAP library.
// C# version
using Limilabs.Mail;
using Limilabs.Client.IMAP;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
using (Imap imap = new Imap())
{
imap.Connect("imap.example.com"); // or ConnectSSL for SSL
imap.UseBestLogin("user", "password");
imap.SelectInbox();
List<long> uids = imap.Search(Flag.Seen);
foreach (long uid in uids)
{
imap.MoveByUID(uid, "Inbox/Seen");
}
imap.Close();
}
}
};
' VB.NET version:
Imports Limilabs.Mail
Imports Limilabs.Client.IMAP
Imports System.Collections.Generic
Public Module Module1
Public Sub Main(ByVal args As String())
Using imap As New Imap()
imap.Connect("imap.example.com") ' or ConnectSSL for SSL
imap.UseBestLogin("user", "password")
imap.SelectInbox()
Dim uids As List(Of Long) = imap.Search(Flag.Seen)
For Each uid As Long In uids
imap.MoveByUID(uid, "Inbox/Seen")
Next
imap.Close()
End Using
End Sub
End Module
You can also use bulk methods to move, copy and delete emails:
// C# version
using (Imap imap = new Imap())
{
imap.Connect("imap.example.com");
imap.Login("user", "password");
imap.SelectInbox();
List<long> uids = imap.Search(Flag.Seen);
imap.MoveByUID(uids, "Inbox/Seen");
imap.Close();
}
' VB.NET version:
Using imap As New Imap()
imap.Connect("imap.example.com")
imap.Login("user", "password")
imap.SelectInbox()
Dim uids As List(Of Long) = imap.Search(Flag.Seen)
imap.MoveByUID(uids, "Inbox/Seen")
imap.Close()
End Using