Справочник CLI¶
Все команды запускаются через CLI плагинов Grav из корня сайта:
Каждая команда, кроме migrate и status, отказывается работать, пока ждут миграции базы данных, и говорит сначала запустить bin/plugin mailroom migrate. status сообщает о них как о проблеме.
Краткий справочник¶
| Команда | Что делает | Безопасна на живом сайте? |
|---|---|---|
status |
Проверяет базу данных, почтовый транспорт, адрес сайта, очередь и обработчик | Да, только чтение |
work |
Выполняет один проход обработчика | Да |
migrate |
Создаёт или обновляет таблицы базы данных | Да |
erase |
Забывает один адрес электронной почты | Да, но это нельзя отменить |
import:csv |
Импортирует список контактов из CSV | Да; --dry-run ничего не пишет |
export:csv |
Записывает список подписчиков как CSV | Да, только чтение |
segments:count |
Пересчитывает сегменты сейчас | Да |
segments:preview |
Показывает, о ком сегмент | Да, только чтение |
deliverability:check |
Запускает проверки экрана Health | Да, только чтение |
webhook:replay |
Проводит сохранённую полезную нагрузку провайдера через его провайдера | Да; пишет только с --apply |
seed |
Наполняет пустой Mailroom демонстрацией | Не на настоящем сайте |
status¶
Печатает базу данных (и файл SQLite), схему, базовый маршрут, отправляет ли плагин Email, адрес From (собственный Mailroom или плагина Email), адрес сайта, ждущие и неудачные задания, когда обработчик запускался последний раз, сколько есть списков и сколько подписчиков в каждом состоянии. Каждая проблема — предупреждение о том, что делать; когда обработчик не запускался больше 15 минут (или никогда), предупреждение заканчивается строкой crontab, которую нужно добавить, на отдельной строке, чтобы она чисто скопировалась.
Она заканчивается «Healthy: the database is current, mail can leave and the queue is moving.» и выходит с 0 или выходит с 1, когда есть проблема, поэтому скрипт развёртывания или монитор могут её спросить. Это первая команда, которую стоит запускать, когда что-то не происходит.
work¶
Один проход обработчика: ставит в очередь автоматизации и пересчёт сегментов, когда им пора, отпускает письма, удерживаемые из-за адреса сайта, выполняет готовые задания, выполняет ежедневную уборку, когда пора, и записывает запуск. Планировщик Grav запускает это каждую минуту как mailroom-worker. --max-time — бюджет времени в секундах (по умолчанию 50), а --max-jobs — наибольшее число заданий (по умолчанию 0, без ограничения). Печатает «Processed N job(s), N failed, N deferred.» и, в тот запуск, когда это происходит, что удалила уборка. См. Задания и cron.
migrate¶
bin/plugin mailroom migrate --status # список ожидающих шагов без изменений
bin/plugin mailroom migrate # применить их
Создаёт или обновляет таблицы Mailroom. SQLite мигрирует сам при первом использовании, поэтому на большинстве сайтов этой команде нечего делать. Запускайте её после каждого обновления на MySQL или PostgreSQL, если database.auto_migrate не auto, и всегда, когда database.auto_migrate — manual. Миграции только добавляют; обратного шага нет, поэтому держите резервную копию. См. Установку.
erase¶
Забывает один адрес: подписчика, его списки, теги, отправки, переходы, места в автоматизациях, историю согласий, отчёты провайдера и строки журнала сообщений, оставляя только хеш исключения. Сначала спрашивает, если не передан --yes (-y), затем перечисляет, сколько чего ушло. То же, что POST /mailroom/erase. См. Конфиденциальность.
import:csv¶
bin/plugin mailroom import:csv contacts.csv --dry-run
bin/plugin mailroom import:csv contacts.csv --list=newsletter --tag=october-import
Импортирует список контактов на переднем плане, удаляя дубликаты по адресу и соблюдая исключения, и печатает, что сделал.
| Параметр | Что делает |
|---|---|
--list |
Код списка, в который вступают все. По умолчанию список по умолчанию. |
--preset |
Прочитать файл как экспорт другого инструмента: emailoctopus. |
--map field=column |
Сопоставление столбца, можно повторять: --map email="Email address". |
--tag |
Тег, который ставится всем в файле. |
--basis |
Где эти люди согласились, хранится в каждой истории согласий. По умолчанию имя файла. |
--as-confirmed |
Считать всех уже подтвердившими. Значение по умолчанию. |
--ask-to-confirm |
Импортировать всех ожидающими подтверждения и отправить каждому письмо. |
--dry-run |
Прочитать файл и сообщить, ничего вообще не записывая. |
См. Импорт и экспорт.
export:csv¶
bin/plugin mailroom export:csv --file=subscribers.csv
bin/plugin mailroom export:csv --status=subscribed --list=newsletter | wc -l
Записывает список подписчиков как CSV в --file или стандартный вывод. Фильтры: --status, --source (form, import, api, admin, automation), --list и --tag (по коду) и --search. См. Импорт и экспорт.
segments:count¶
Пересчитывает сегменты сейчас, не дожидаясь обработчика: все сегменты или один с --id. Полезно сразу после импорта или во время построения сегмента. Выходит с 1, когда сегмент не удалось посчитать (причина в журнале Grav).
segments:preview¶
Показывает, о скольких людях сегмент, сколько исключено (исключённые, отписанные, никогда не подтвердившие) и десять из них. Адреса замаскированы (a***@example.com), поэтому вывод безопасно вставлять в обращение в поддержку; используйте export:csv, когда нужны адреса.
deliverability:check¶
Запускает проверки экрана Health и печатает их в тех же трёх группах с тем, что делать с каждой. Она заново смотрит всё, если не передан --cached (десятиминутный кэш, который читает экран). Выходит с 1, когда какая-либо проверка не проходит, или с --strict, когда какая-либо стоит внимания. См. Доставляемость.
webhook:replay¶
bin/plugin mailroom webhook:replay mailgun payload.json
bin/plugin mailroom webhook:replay mailgun payload.json --apply
Проводит сохранённую полезную нагрузку через настоящего провайдера и говорит для каждого события в ней адрес, id сообщения, id провайдера, заголовок отправки, время и причину, которые он прочитал, какой строке отправки оно совпало и что сделал бы (или сделал, с --apply). Провайдер — это слаг, который регистрирует транспортный плагин на сайте, например smtp2go, ses, sendgrid, postmark, mailgun, mailersend или resend. Подпись не проверяется, потому что полезная нагрузка, сохранённая из панели провайдера, потеряла свои заголовки; поэтому --apply записывает то, что говорит файл. Уже записанное событие ничего не меняет. См. Отправку и провайдеров.
seed¶
Наполняет пустой Mailroom трёхмесячной рассылкой небольшого проекта, чтобы осмотреться или для демонстрации: списки Newsletter, Product updates и Events, несколько тегов, четыреста человек, пришедших через форму подписки, импорт, администратора или API, семь кампаний с настоящими цифрами (одна черновик, одна запланированная), четыре сегмента, две автоматизации и список исключений. У каждого добавленного человека есть история согласий (как он пришёл, его подтверждение и как он ушёл), у каждого письма автоматизации есть отправки, открытия и переходы людей, которые мимо него прошли, и ничто не датировано позже момента запуска seed. Ничего не отправляется. --days задаёт, сколько истории писать (от 7 до 730, по умолчанию 90). Повторный запуск пропускает то, что уже есть, а --purge удаляет ровно то, что добавил. Когда адрес сайта не задан, у добавленных ссылок нет хоста и переходы не записываются, и она говорит об этом.