Use Imap.Examine instead of Imap.Select when you select/open IMAP folder.
This way folder is opened in read-only mode and IMAP server should prevent any modifications be made to the message.
Using Examine prevents removing of the \Recent and \Unseen flags, thus some IMAP servers require to use *Imap.Peek** methods instead of *Imap.Get**:
using(Imap imap = new Imap())
{
imap.Connect("imap.server.com"); // or ConnectSSL for SSL
imap.UseBestLogin("user", "password");
imap.ExamineInbox(); // or Examine("FolderName")
List<long> uids = imap.Search(Flag.Unseen);
foreach (long uid in uids)
{
IMail email = new MailBuilder()
.CreateFromEml(imap.PeekMessageByUID(uid));
string email = email.Subject;
}
imap.Close();
}