Работа с сообщениями с сервера

Contents
[ ]

Получение данных почтового ящика

Мы можем получить информацию о почтовом ящике, такую как количество сообщений и размер почтового ящика, используя GetMailBoxSize and GetMailBoxInfo методы Pop3Client class.

Также можно получить количество сообщений, используя MessageCount свойство и размер с использованием OccupiedSize собственность Pop3MailBoxInfo класс. В следующем примере кода показано, как получить информацию о почтовом ящике. В нем показано, как:

  1. Создайте Pop3Client.
  2. Подключитесь к серверу POP3.
  3. Узнайте размер почтового ящика.
  4. Получите информацию о почтовом ящике.
  5. Получите количество сообщений в почтовом ящике.
  6. Найдите занятый размер.

Определение количества писем в почтовом ящике

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

Aspose.Email позволяет разработчикам работать с электронной почтой разными способами. Например, они могут получить информацию из заголовка, прежде чем принимать решение о загрузке электронного письма. Или они могут извлекать электронные письма с сервера и сохранять их без анализа (быстрее) или после анализа (медленнее). В этой статье показано, как извлекать и конвертировать электронные письма.

Получение информации о заголовках электронных писем

Заголовки электронной почты могут предоставить нам информацию об электронном сообщении, которую мы можем использовать для принятия решения о том, следует ли получать все сообщение электронной почты. Как правило, информация в заголовке содержит отправителя, тему, дату получения и т. д. (заголовки электронных писем подробно описаны в Настройка заголовков электронной почты. Этот раздел посвящен, в частности, отправке электронного письма по протоколу SMTP, но информация о содержимом заголовка письма остается актуальной для писем по протоколу POP3). В следующих примерах показано, как получать заголовки писем с сервера POP3 по порядковому номеру сообщения.

Получение сообщений электронной почты

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

Получение сводной информации о сообщении с использованием уникального идентификатора

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

Список сообщений с помощью MultiConnection

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

Загрузка сообщений с сервера и сохранение на диск

Сохранить сообщение на диск без парсинга

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

Проанализируйте сообщение перед сохранением

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

Групповая выборка сообщений

Pop3Client обеспечивает FetchMessages метод, который принимает итерацию последовательных номеров или уникальных идентификаторов и возвращает список MailMessage. Следующий фрагмент кода демонстрирует использование FetchMessages метод получения сообщений по порядковым номерам и уникальному идентификатору.

Фильтрация сообщений по отправителю, получателю или дате

The Pop3Client класс, описанный в Подключение к серверу POP3, предоставляет ListMessages() метод, который получает все сообщения из почтового ящика. Чтобы получать только сообщения, соответствующие определенному условию, используйте перегруженный ListMessages() метод, который принимает MailQuery в качестве аргумента. MailQuery класс предоставляет различные свойства для указания условий запроса, например дату, тему, отправитель, получатель и т. д. MailQueryBuilder класс используется для построения поискового выражения. Сначала задаются все условия и ограничения, а затем MailQuery заполняется запросом, разработанным MailQueryBuilder. MailQuery объект класса используется Pop3Client для извлечения отфильтрованной информации с сервера. В этой статье показано, как фильтровать сообщения электронной почты из почтового ящика. В первом примере показано, как фильтровать сообщения по дате и теме. Мы также покажем, как фильтровать по другим критериям и создавать более сложные запросы. Также показано применение фильтра даты и времени для извлечения определенных писем из почтового ящика. Кроме того, в нем также показано, как применять фильтрацию с учетом регистра символов.

Фильтрация сообщений из почтового ящика

Чтобы отфильтровать сообщения из почтового ящика, выполните следующие действия

  1. Подключение к серверу POP3 и вход на него.
  2. Создайте экземпляр MailQuery и задайте нужные свойства.
  3. Позвоните Pop3Client.ListMessages(MailQuery query) метод и передайте MailQuery в параметрах, чтобы получать только отфильтрованные сообщения.

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

Получение сообщений, соответствующих определенным критериям

Приведенные выше примеры кода показывает, как фильтровать сообщения по теме и дате письма. Мы также можем использовать другие свойства для установки других поддерживаемых условий. Ниже приведены несколько примеров настройки условий с помощью MailQuery.

Приведенные ниже фрагменты кода показывают, как фильтровать электронные письма по другим критериям:

  • Найдите электронные письма, доставленные сегодня.
  • Найдите электронные письма, полученные в пределах диапазона.
  • Найдите электронные письма от определенного отправителя.
  • Найдите электронные письма, отправленные с определенного домена.
  • Найдите электронные письма, отправленные определенному получателю.

Сегодняшняя дата

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

Диапазон дат

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

Конкретный отправитель

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

Конкретный домен

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

Конкретный получатель

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

Создание сложных запросов

Если отличается MailQueryBuilder свойства задаются в отдельных выражениях, тогда все условия будут выполнены. Например, если мы хотим получать сообщения за определенный диапазон дат и от определенного хоста, нам нужно написать три выражения.

Объединение запросов с AND

В следующем фрагменте кода показано, как комбинировать запросы с AND.

Объединение запросов с OR

MailQueryBuilder обеспечивает Or() метод, который требует двух MailQuery экземпляры в качестве параметров. Он получает сообщения, соответствующие любому из двух указанных условий. В следующем фрагменте кода показано, как фильтровать сообщения, в теме которых указано слово «test» или «noreply@host.com» в качестве отправителя. В следующем фрагменте кода показано, как комбинировать запросы с OR.

Применение фильтров, чувствительных к регистру

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

  • Method Aspose.Email.StringComparisonField.Contains(string value, bool ignoreCase)
  • Method Aspose.Email.StringComparisonField.Equals(string value, bool ignoreCase)
  • Method Aspose.Email.StringComparisonField.NotContains(string value, bool ignoreCase)
  • Method Aspose.Email.StringComparisonField.NotEquals(string value, bool ignoreCase)