Скачать

Командная строка (превью для разработчиков)

Команда foldmail: текущее состояние, команды, параметры, файлы правил и коды выхода.

Превью для разработчиков. foldmail не входит в приложение FOLD. Сейчас она существует как сборка из исходного кода FOLD для разработки и тестирования. Она работает с собственным локальным хранилищем данных, а не с данными приложения FOLD, которые песочница macOS держит в контейнере приложения. Поэтому командная строка не видит почту, которая есть у вас в приложении, а письма, поставленные ею в очередь, приложение не отправляет. Её сообщения и справка сейчас на немецком языке.

Эта страница описывает, что превью умеет сегодня. До выхода командной строки команды, параметры и вывод могут измениться.

Команды

КомандаЧто делает
foldmail accountsПеречисляет учётные записи
foldmail mailboxes --account <name>Перечисляет папки учётной записи с числом непрочитанных и общим числом писем
foldmail search <query>Ищет с синтаксисом поиска; list является псевдонимом
foldmail read <id>Показывает письмо; --headers опускает текст. Если текст письма не сохранён локально, показывается предпросмотр
foldmail flag <id…> --add <flag> --remove <flag>Устанавливает или снимает флаги и теги, например \Seen, \Flagged или important; оба параметра можно повторять
foldmail delete <id…>Удаляет письма из локального хранилища; идентификаторы нужно указать явно
foldmail compose --from <addr> --to <addr>Собирает письмо и записывает его в стандартный вывод
foldmail send --account <name> --from <addr> --to <addr>То же, что compose --enqueue: помещает письмо в исходящие
foldmail outbox list --account <name>Перечисляет исходящие
foldmail outbox cancel <id>Забирает ожидающее письмо обратно из исходящих
foldmail filter run --rules <file>Выполняет файл правил; только предпросмотр, если не указан --apply
foldmail helpПоказывает справку; то же делает foldmail без аргументов

Командная строка сама почту не отправляет. send и compose --enqueue лишь помещают письмо в исходящие командной строки; foldmail его не доставляет, а приложение FOLD эти исходящие не читает. Встроенная справка пока показывает примеры с fold; команда называется foldmail.

Параметры

ПараметрИспользуется сЗначение
--jsonвсемиВывод в JSON (с отступами, отсортированными ключами, датами ISO 8601). Структура пока не версионируется
--quietвсемиТолько идентификаторы или только число изменённых писем
--limit <n>searchМаксимальное число результатов, по умолчанию 100
--offset <n>searchПропустить первые n результатов
--account <name>mailboxes, send, compose --enqueue, outbox listОтображаемое имя или адрес учётной записи
--headersreadТолько заголовки
--add, --remove <flag>flagФлаг или тег, который нужно установить или снять
--from, --to, --cc, --bcc, --subject, --bodycompose, sendПоля письма; --to, --cc, --bcc можно повторять. Без --body оставшиеся аргументы образуют текст
--enqueuecomposeПоставить в очередь вместо вывода
--delay <seconds>send, compose --enqueueПодождать перед отправкой, как интервал для отмены
--rules <file>filter runФайл правил в формате JSON
--applyfilter runПрименить правила вместо предпросмотра

В командной строке account: и from-account: фильтруют по отображаемому имени или адресу учётной записи. in: не действует и здесь.

Передавайте запрос одним аргументом в кавычках. Отдельный аргумент, начинающийся с минуса, читается как параметр и отбрасывается, поэтому пишите foldmail search 'from:anna -is:read' или ставьте -- перед запросом, который начинается с минуса: foldmail search -- '-is:read'.

Файлы правил

filter run читает правила той же структуры, что и правила фильтрации приложения, записанные в JSON:

{
  "schemaVersion": 1,
  "rules": [
    {
      "name": "Newsletters",
      "match": "from:[email protected]",
      "actions": [{ "type": "markRead" }, { "type": "addFlag", "flag": "newsletter" }],
      "stopOnMatch": false
    }
  ]
}

Типы действий: markRead, markUnread, addFlag и removeFlagflag), delete, movemailbox), forwardto, списком) и autoReplybody). С --apply файл правил, содержащий move, forward или autoReply, отклоняется до каких-либо изменений; предпросмотр по-прежнему показывает его совпадения.

Коды выхода

КодЗначение
0Успех
1Общая ошибка, например хранилище не открывается, оператор поиска не поддерживается (has:attachment), текст письма или вложение недоступны, либо запись в исходящих уже нельзя отменить
2Ошибка использования: неизвестная команда, отсутствует параметр или значение параметра, файл правил не читается, недопустимый запрос или идентификатор письма
3Ничего не найдено: пустой результат, неизвестное письмо или папка, либо не сработало ни одно правило
4Данные письма неполны или не читаются

Если учётная запись в хранилище командной строки использует режим Fortress, foldmail отказывается работать и завершается с кодом 1, чтобы никогда не записывать незашифрованные данные в зашифрованное хранилище.

Примеры

foldmail search 'from:anna is:unread' --json
foldmail search 'is:unread' --quiet | xargs foldmail flag --add '\Seen'
foldmail compose --from [email protected] --to [email protected] --subject Hi --body 'Test' > mail.eml
foldmail filter run --rules ~/rules.json
foldmail filter run --rules ~/rules.json --apply