Как правильно удалить письма из ящика через imap4 на c# ?

Доброго времени суток. Нужно получить все непрочитанные письма через imap4. С этим понятно это легко, я использую для этого MailSystem.NET. Но вот с удалением возникает проблемка. Я так пониаю чтобы случайно не грохнуть новое письмо нужно использовать их UID , только вот я не могу его получить. Есть некий messageID но это String. Uid же это инт и ничего такого в объектах типа message,полученных с почтового ящика, просто нет.
Подскажите пожалуйста как получиться uid для удаления писем? Или же как использовать позицию письма на сервере чтобы не удалить лишние? Спасибо!
  • Вопрос задан
  • 3110 просмотров
Решения вопроса 1
@alesto Автор вопроса
Вообщем я сам нашёл ответ, хотя пришлось довольно долго гуглить.

Mailbox inbox = imap.SelectMailbox("inbox"); // получаем каталог
int[] ids = inbox.Search("UNSEEN"); //получаем ид непросмотренных сообщений

Чтобы оплучить uid сообщения использую ид на сервере
inbox.Fetch.Uid(id);

Чтобы удалить сообщение используя uid
inbox.UidDeleteMessage(uid, true);

Это не готовый код. Но я бы делал так
1)Собирал все uid которые нам нужно удалить.
2)Затем удалял бы все сообщение в цикле.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы