Skip to Content

Получить письма

Элемент получает письма из указанной папки почтового ящика Microsoft 365 и сохраняет их в переменную типа List<Message> вместе с вложениями. Для корректной работы следует поместить элемент в контейнер Microsoft 365.

Свойства

Описание общих свойств элемента см. в разделе Свойства элемента . Символ * в названии свойства указывает на обязательность его заполнения.

СвойствоТипОписание
Аккаунт:
Учетная записьStringАдрес почтового ящика, например "robot@company.ru". Если не заполнено — ящик пользователя, под которым выполнен вход. При входе по сертификату или секрету обязательно. См. Учетная запись в элементах
Параметры:
ПапкаStringОтображаемое имя папки на языке ящика, например "Входящие". См. Имена папок. По умолчанию "Inbox"
IDStringИдентификатор письма. Если заполнено, элемент возвращает только это письмо, остальные параметры не учитываются
ЗапросStringУсловие отбора писем в синтаксисе OData $filter, например "hasAttachments eq true". См. Условия отбора
Кол-воInt32Максимальное количество писем, не более 1000. По умолчанию 50
Только непрочтенныеBooleanПолучать только непрочитанные письма. По умолчанию включено
Сортировка-Порядок писем. Доступные значения: NewFirst — сначала новые, OldFirst — сначала старые. По умолчанию NewFirst
Пометить прочитаннымиBooleanПометить полученные письма как прочитанные. По умолчанию выключено
Результат:
РезультатList<Message>Переменная для сохранения списка писем. Если писем нет — пустой список

Важно: Значение Папки по умолчанию "Inbox" подходит только для англоязычного ящика. Для русскоязычного ящика укажите "Входящие".

Условия отбора

Свойство Запрос задает условие по свойствам письма. Строковые значения указываются в одинарных кавычках, даты — в формате ISO 8601 (UTC).

ЗадачаЗначение свойства Запрос
Письма от отправителя"from/emailAddress/address eq 'bank@bank.ru'"
Письма с вложениями"hasAttachments eq true"
Письма с заданной темой"subject eq 'Ежедневный отчет'"
Письма, полученные после даты"receivedDateTime ge 2026-09-01T00:00:00Z"
Важные письма"importance eq 'high'"
Несколько условий"hasAttachments eq true and from/emailAddress/address eq 'bank@bank.ru'"

При включенном свойстве Только непрочтенные оно объединяется с Запросом через and.

Практические примеры

Пример 1: непрочитанные письма из папки «Входящие»

  • Учетная запись: "robot@company.ru"
  • Папка: "Входящие"
  • Кол-во: 20
  • Только непрочтенные: включено
  • Пометить прочитанными: включено
  • Результат: messages

Количество полученных писем — messages.Count, тема первого письма — messages[0].Subject.

Пример 2: письма от банка с вложениями за последние сутки

  • Папка: "Входящие"
  • Запрос: "from/emailAddress/address eq 'bank@bank.ru' and hasAttachments eq true and receivedDateTime ge " + DateTime.UtcNow.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ssZ")
  • Только непрочтенные: выключено
  • Сортировка: OldFirst

Пример 3: сохранение вложений на диск

После элемента с результатом messages добавьте элемент выполнения кода:

foreach (var m in messages) { if (m.Attachments == null) continue; foreach (var a in m.Attachments.OfType<Microsoft.Graph.Models.FileAttachment>()) System.IO.File.WriteAllBytes(System.IO.Path.Combine(@"C:\Robot\Inbox", a.Name), a.ContentBytes); }

Сохраняются файловые вложения. Вложенные письма и ссылки на облачные файлы пропускаются.

Рекомендации

  • Ограничивайте выборку свойствами Кол-во и Запрос: элемент загружает вложения каждого письма, и большие выборки обрабатываются долго.
  • Чтобы не обрабатывать одно письмо повторно, после обработки перемещайте его в отдельную папку элементом Переместить письмо или отмечайте категорией элементом Установить категории письма.

Возможные ошибки

ОшибкаПричина и решение
Sequence contains no elementsПапка не найдена. Проверьте имя папки с учетом языка ящика и то, что папка находится на верхнем уровне
Access is deniedНе заполнена Учетная запись при входе от имени приложения или не выдано разрешение Mail.Read
Invalid filter clauseОшибка в синтаксисе Запроса: проверьте кавычки, имена свойств и формат даты
Last updated on