Обнаружение новых сообщений электронной почты на сервере POP3

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

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

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

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

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

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

Процесс ускоряется, если вы:

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

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