Работа с сообщениями с сервера
Получение данных почтового ящика
Мы можем получить информацию о почтовом ящике, такую как количество сообщений и размер почтового ящика, используя GetMailBoxSize and GetMailBoxInfo методы Pop3Client class.
- The GetMailBoxSize метод возвращает размер почтового ящика в байтах.
- The GetMailBoxInfo метод возвращает объект типа Pop3MailBoxInfo.
Также можно получить количество сообщений, используя MessageCount свойство и размер с использованием OccupiedSize собственность Pop3MailBoxInfo класс. В следующем примере кода показано, как получить информацию о почтовом ящике. В нем показано, как:
- Создайте Pop3Client.
- Подключитесь к серверу POP3.
- Узнайте размер почтового ящика.
- Получите информацию о почтовом ящике.
- Получите количество сообщений в почтовом ящике.
- Найдите занятый размер.
Определение количества писем в почтовом ящике
В следующем фрагменте кода показано, как подсчитать количество сообщений электронной почты в почтовом ящике.
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 для извлечения отфильтрованной информации с сервера. В этой статье показано, как фильтровать сообщения электронной почты из почтового ящика. В первом примере показано, как фильтровать сообщения по дате и теме. Мы также покажем, как фильтровать по другим критериям и создавать более сложные запросы. Также показано применение фильтра даты и времени для извлечения определенных писем из почтового ящика. Кроме того, в нем также показано, как применять фильтрацию с учетом регистра символов.
Фильтрация сообщений из почтового ящика
Чтобы отфильтровать сообщения из почтового ящика, выполните следующие действия
- Подключение к серверу POP3 и вход на него.
- Создайте экземпляр MailQuery и задайте нужные свойства.
- Позвоните
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)