Чтение почты
Компонент для чтения электронной почты из MS Exchange с возможностью фильтрации и сортировки. Работает в контейнере активности Сервер MS Exchange
Свойства
Описание общих свойств элемента см. в разделе Свойства элемента.
Символ *
в названии свойства указывает на обязательность заполнения.
Свойство | Тип | Описание |
---|---|---|
Вывод | ||
Переменная* | List<LTools.Office.Model.OMailMessage> | Переменная вывода для сохранения списка полученных писем |
Exchange | ||
Путь к папке | String | Папка, из которой будет происходить чтение писем. Например, можно выбрать папку “Входящие”, “Отправленные” и т.д.. Пример: "Inbox" |
Только непрочитанные | Boolean | Загрузить только те письма, которые помечены как непрочитанные. |
Кол-во | Int32 | Максимальное количество писем, которые нужно загрузить. По умолчанию установлено30 писем. |
Направление | Enum (Ascending/Descending) | Направление сортировки (Ascending/Descending). Если установлено Descending , то письма будут сортироваться в порядке убывания (например, от самых новых к старым). |
Вложения | Boolean | Определяет, нужно ли получать вложения из писем |
Запрос | String | Запрос для фильтрации писем. Ниже приведены примеры свойства. |
Общий ящик | String | Укажите адрес общего почтового ящика . Пример: "info@company.com" |
Сортировать | Enum (Ниже перечислены доступные свойства) | Функция сортировки доступна с версии 1.24.8 |
Свойства сортировки
Доступные поля для сортировки писем:
Поле | Описание | Пример SQL выражения |
---|---|---|
Bcc | Сортировка по скрытой копии | ”@SQL="urn:schemas:httpmail:bcc" ASC ” |
Cc | Сортировка по копии | ”@SQL="urn:schemas:httpmail:cc" DESC ” |
Receive Time | Сортировка по времени получения | ”@SQL="urn:schemas:httpmail:datereceived" DESC ” |
From | Сортировка по отправителю | ”@SQL="urn:schemas:httpmail:from" ASC ” |
To | Сортировка по получателю | ”@SQL="urn:schemas:httpmail:to" ASC ” |
Subject | Сортировка по теме письма | ”@SQL="urn:schemas:httpmail:subject" DESC ” |
Categories | Сортировка по категориям | ”@SQL="urn:schemas:httpmail:categories" ASC ” |
Параметры Запрос
Фильтрация писем
Свойство “Запрос” позволяет фильтровать письма по различным критериям. Ниже приведены примеры фильтров для разных сценариев:
Общий синтаксис фильтров
"поле:значение" // простой фильтр
"поле1:значение1 AND поле2:значение2" // комбинированный фильтр
Примеры фильтров
Тип фильтра | Пример запроса | Описание |
---|---|---|
По теме | "subject:welcome" | Письма, содержащие “welcome” в теме |
"subject:работа*" | Письма, где тема начинается с “работа” | |
По отправителю | "from:ivan.ivanov@example.com" | Письма от конкретного адреса |
"from:example.com" | Письма от любого адреса домена example.com | |
По содержимому тела | "body:'please review'" | Письма, содержащие фразу “please review” в теле |
"body:'Ознакомьтесь*'" | Письма, где тело начинается с “Ознакомьтесь” | |
По дате | "received:today" | Письма, полученные сегодня |
"received:>=28/04/2025" | Письма, полученные начиная с 28.04.2025 | |
"received:25/04/2025..28/04/2025" | Письма, полученные в указанном диапазоне дат | |
По вложениям | "hasattachment:true" | Письма с вложениями |
"attachments:.pdf" | Письма с PDF-вложениями | |
По важности | "importance:high" | Письма с высокой важностью |
По категориям | "category:'Red category, Blue category'" | Письма с указанными категориями |
По типу | "kind:meetings" | Письма-встречи (календарные приглашения) |
Расширенный SQL-синтаксис (для сложных фильтров)
"@SQL=urn:schemas:httpmail:subject like '%welcome%'"
"@SQL=urn:schemas:httpmail:textdescription like '%Primo RPA%'"
"@SQL=urn:schemas:httpmail:datereceived >= '2025-04-25' AND urn:schemas:httpmail:datereceived <= '2025-04-28'"
"@SQL=urn:schemas:httpmail:hasattachment = true"
Для фильтрации писем на русском языке используйте русскоязычные ключевые слова в запросах
Только код
Пример использования элемента в процессе с типом Только код (Pure code):
C#
LTools.Office.MSExchangeApp app = LTools.Office.MSExchangeApp.InitSvc(wf, Microsoft.Exchange.WebServices.Data.ExchangeVersion.Exchange2013_SP1, "server url", "login", "pass", "domain");
List<LTools.Office.Model.OMailMessage> msg = app.ReadMail("Inbox", true, false, 10);