Командная строка (превью для разработчиков)
Команда 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 | Отображаемое имя или адрес учётной записи |
--headers | read | Только заголовки |
--add, --remove <flag> | flag | Флаг или тег, который нужно установить или снять |
--from, --to, --cc, --bcc, --subject, --body | compose, send | Поля письма; --to, --cc, --bcc можно повторять. Без --body оставшиеся аргументы образуют текст |
--enqueue | compose | Поставить в очередь вместо вывода |
--delay <seconds> | send, compose --enqueue | Подождать перед отправкой, как интервал для отмены |
--rules <file> | filter run | Файл правил в формате JSON |
--apply | filter 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 и removeFlag (с flag), delete, move (с mailbox), forward (с to, списком) и autoReply (с body). С --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