# WP-CLI

> Every wp boolean-smtp subcommand — queue:work, connections:list, logs:export, test-email and import — with its arguments, from the plugin's own command classes.

Every command runs under `wp boolean-smtp`. On a site running WordPress at the command line:

```bash
wp boolean-smtp <command> [<args>] [--<flag>]
```

Run `wp boolean-smtp hooks:list` on your own site for the live catalog these pages are generated from.

## `queue:work`

Send the queued emails now, without waiting for WP-Cron.

```bash
wp boolean-smtp queue:work [--limit=<n>] [--retry]
```

| Argument | Description |
| --- | --- |
| `--limit=<n>` | Maximum number of emails to send in this run. Default `50`. |
| `--retry` | Also retry emails that failed before. |

## `connections:list`

List the configured connections: id, name, driver, active state, health and last-used time.

```bash
wp boolean-smtp connections:list [--format=<format>]
```

| Argument | Description |
| --- | --- |
| `--format=<format>` | `table` (default), `json`, `csv`, `yaml` or `count`. |

```bash
$ wp boolean-smtp connections:list --format=count
4
```

## `logs:export`

Export email logs to a JSON file.

```bash
wp boolean-smtp logs:export [--output=<path>] [--days=<n>] [--status=<status>]
```

| Argument | Description |
| --- | --- |
| `--output=<path>` | File to write, relative to the current directory. Default `boolean-smtp-logs.json`. |
| `--days=<n>` | Export logs from the last N days. Default `30`. |
| `--status=<status>` | Only logs with this status (`delivered`, `failed`, `pending`, `simulated`); comma-separate several. |

## `test-email`

Send a test message through the configured mail pipeline and report the outcome.

```bash
wp boolean-smtp test-email <to> [--subject=<subject>] [--html]
```

| Argument | Description |
| --- | --- |
| `<to>` | Recipient email address. Required. |
| `--subject=<subject>` | Subject line. Default `Test Email - BooleanSMTP Check`. |
| `--html` | Send an HTML body instead of plain text. |

## `import`

Assess or import connections and email logs from another SMTP plugin.

```bash
wp boolean-smtp import <source> [--dry-run] [--no-connections] [--logs] [--max-logs=<n>]
  [--restart-logs] [--on-conflict=<keep|replace>] [--keys]

wp boolean-smtp import --probe
```

| Argument | Description |
| --- | --- |
| `<source>` | One of `fluent-smtp`, `wp-mail-smtp`, `post-smtp`, `easy-wp-smtp`, `suremails`, `gosmtp`. |
| `--dry-run` | Assess only; write nothing. |
| `--no-connections` | Skip importing connections (they import by default). |
| `--logs` | Also import the email log (or only, combined with `--no-connections`). |
| `--max-logs=<n>` | Cap on log rows, newest first. `0` for no cap. |
| `--restart-logs` | Start the log import over instead of resuming a previous run. |
| `--on-conflict=<keep\|replace>` | When an imported connection uses a sender the site already has: keep the site's connection (default) or replace it. |
| `--keys` | Print each connection's key inside the source, alongside `--dry-run`. |
| `--probe` | Check that every installed source's stored SMTP credential decodes; prints length and shape only, never the value. |

## From the BooleanPress framework

Every BooleanPress plugin, including BooleanSMTP, also gets these from the framework it runs on:

| Command | Description |
| --- | --- |
| `wp boolean-smtp migrate [--status\|--rollback\|--reset]` | Run, inspect or roll back the plugin's database migrations. |
| `wp boolean-smtp hooks:list [--plugin=<slug>] [--type=<action\|filter>]` | List every registered hook — the live version of the [hooks reference](/hooks/). |

## Next steps

- [Hooks](/hooks/) — the reference `hooks:list` prints from.
- [REST API](/rest-api/) — the same migration importer, callable from the admin UI:
  `POST /tools/migration/import`.
