Обнаружение новых писем на сервере POP3

С помощью учетных записей POP3 вы можете оставлять сообщения на сервере при их загрузке и чтении. Оставление писем на сервере означает, что они доступны другим приложениям и пользователям, например, пользователям, которые получают доступ к своей электронной почте с нескольких устройств. Или вы можете захотеть загружать только те сообщения, которые соответствуют особым критериям, например, сообщения с определенной темой. Для управления электронной почтой вы можете:

  • Читать все сообщения с почтового сервера POP3 с помощью Aspose.Email.
  • Загружать сообщения в вашу локальную базу данных.

Сообщения не удаляются, а остаются на сервере. При первом запуске этот процесс работает нормально. Все необходимые сообщения загружаются в базу данных. Но при втором запуске загружаются те же сообщения, потому что они все еще находятся на почтовом сервере. Это приводит к дублированию записей. Чтобы решить эту проблему, используйте свойство Pop3MessageInfo.UniqueID для проверки, было ли сообщение уже загружено. Уникальный идентификатор сообщения должен храниться в базе данных: это ключ для поиска новых сообщений.

Обнаружение новых сообщений

Чтобы идентифицировать новые электронные письма из списка писем на сервере POP3:

  1. Подключитесь к серверу.
  2. Получите список писем.
  3. Подключитесь к базе данных.
  4. Получите список писем.
  5. Сравните списки.
  6. Сохраните новые письма в базе данных.

Процесс проходит быстрее, когда вы:

  1. Извлекаете все уникальные идентификаторы сообщений в хэш-таблицу.
  2. Ищете в хэш-таблице вместо базы данных для каждого электронного письма в цикле foreach(…).

Вместо запроса к базе данных для каждого сообщения, что требует множества вызовов к базе данных, этот метод требует только одного вызова. Следующий код показывает, как обнаружить новые письма на сервере POP3.