> ## Documentation Index
> Fetch the complete documentation index at: https://jetemail.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# outbound

> Manage outbound domains, logs, SMTP smarthost users, suppression, and transactional API keys.

`jetemail outbound` covers everything under `/outbound/…`. Authentication uses your `api_…` key.

```
outbound
├── domains       list | create | delete | check | settings
├── logs          GET /outbound/logs (supports --tail)
├── logs uid <uid>
├── smarthost     list | create | update | delete
├── suppression   list | create | delete | export | import
└── keys          list | create | update | delete | rotate
```

## `outbound domains`

```sh theme={null}
jetemail outbound domains list
jetemail outbound domains create mail.example.com         # alias: add
jetemail outbound domains check <uuid>
jetemail outbound domains delete <uuid>
```

`list` shows a compact table with verification and DKIM status. `check` re-runs DNS verification for one domain.

### `outbound domains settings`

Per-domain settings (BCC, open/click tracking).

```sh theme={null}
jetemail outbound domains settings get <uuid>

jetemail outbound domains settings update <uuid> \
  --bcc archive@example.com \
  --open-tracking true \
  --click-tracking true
```

| Flag                          | Description                                           |
| ----------------------------- | ----------------------------------------------------- |
| `--bcc <addr>`                | BCC every outgoing email to this address. Repeatable. |
| `--open-tracking <bool>`      | Enable open tracking.                                 |
| `--click-tracking <bool>`     | Enable click tracking.                                |
| `--body-json` / `--field k=v` | See [Body escape hatches](/cli/body-json).            |

See [Open tracking](/outbound/open-tracking), [Click tracking](/outbound/click-tracking), [BCC emails](/outbound/bcc-emails).

## `outbound logs`

```sh theme={null}
jetemail outbound logs --limit 50
jetemail outbound logs --action BOUNCED_HARD
jetemail outbound logs --tail
jetemail outbound logs --tail --action BOUNCED_HARD --poll-secs 10
jetemail outbound logs uid <uid>
```

Filters: `--id`, `--uid`, `--action`, `--zone`, `--message-id`, `--from-address`, `--to-address`, `--mx`, `--host`, `--ip`, `--response`, `--size`, `--timer`, `--start`, `--user`, `--protocol`, `--src`, `--subject`, `--body`, `--md5`, `--interface`, `--originhost`, `--transhost`, `--transtype`, `--header-from`, `--date-from`, `--date-to`, `--from`, `--to`, `--rule-id`, `--search`, plus pagination (`--limit`, `--offset`, `--page`, `--sort-by`, `--sort-order`).

`--tail` flags: `--poll-secs N` (default 5), `--buffer N` (default 500). See [Live log tail](/cli/live-tail).

## `outbound smarthost`

Manage SMTP smarthost users (the username/password pairs your apps and servers authenticate as).

```sh theme={null}
jetemail outbound smarthost list

jetemail outbound smarthost create \
  --username acme-prod \
  --password 'SuperStrong123!' \
  --quota 0 \
  --approved-domain example.com \
  --approved-domain mail.example.com

jetemail outbound smarthost update \
  --current-username acme-prod \
  --status active \
  --quota 50000 \
  --ip-restriction 203.0.113.4/32

jetemail outbound smarthost delete acme-prod
```

### `create` / `update` flags

| Flag                          | Description                                                                        |
| ----------------------------- | ---------------------------------------------------------------------------------- |
| `--username <name>`           | New username (create).                                                             |
| `--current-username <name>`   | Existing username to update.                                                       |
| `--new-username <name>`       | Rename.                                                                            |
| `--password <pw>`             | Set or rotate password.                                                            |
| `--allow-any-domain <bool>`   | Allow sending from any domain.                                                     |
| `--allow-all-domains <bool>`  | Allow sending from any verified account domain.                                    |
| `--approved-domain <name>`    | Repeatable.                                                                        |
| `--quota <n>`                 | `0` for unlimited, or a per-user message limit.                                    |
| `--ip-restriction <cidr>`     | Repeatable.                                                                        |
| `--status <state>`            | `inactive`, `active`, `suspended`, `quota-locked`, `quota-unlocked` (update only). |
| `--body-json` / `--field k=v` | See [Body escape hatches](/cli/body-json).                                         |

See [SMTP users](/outbound/smtp-users).

## `outbound suppression`

```sh theme={null}
jetemail outbound suppression list

jetemail outbound suppression create --target user@example.com --reason bounce
jetemail outbound suppression delete 42

jetemail outbound suppression export > suppressions.csv
jetemail outbound suppression import @suppressions.csv
```

| Flag               | Description                                                    |
| ------------------ | -------------------------------------------------------------- |
| `--target <value>` | Email address, domain, or other target to suppress (`create`). |
| `--reason <str>`   | Why it's being suppressed.                                     |

`export` writes CSV to stdout. `import` takes a CSV from `@path` or `-` (stdin).

## `outbound keys` (transactional API keys)

The CLI's `keys` subcommand manages `transactional_…` tokens for the `/email` and `/email-batch` endpoints.

```sh theme={null}
jetemail outbound keys list
jetemail outbound keys create --name "marketing" --quota 100000

jetemail outbound keys update \
  --api-token transactional_xxx \
  --status 1 \
  --allow-all-domains true

jetemail outbound keys rotate transactional_xxx
jetemail outbound keys delete transactional_xxx
```

### `create` flags

| Flag                          | Description                                |
| ----------------------------- | ------------------------------------------ |
| `--name <str>`                | Display label.                             |
| `--allow-all-domains <bool>`  | Permit sending from any verified domain.   |
| `--approved-domain <name>`    | Repeatable.                                |
| `--quota <n>`                 | Monthly limit.                             |
| `--ip-restriction <cidr>`     | Repeatable.                                |
| `--body-json` / `--field k=v` | See [Body escape hatches](/cli/body-json). |

### `update` flags

`--api-token <token>` selects the key. The remaining flags mirror `create`, plus `--status 0` (disabled) or `--status 1` (enabled).

### `rotate`

Issues a new token for an existing key. The old token stops working immediately.

```sh theme={null}
NEW=$(jetemail outbound keys rotate transactional_old --json | jq -r '.api_token')
jetemail config set transactional_key "$NEW"
```

## Related

* [Outbound getting started](/outbound/getting-started)
* [SMTP users](/outbound/smtp-users)
* [Open](/outbound/open-tracking) / [click tracking](/outbound/click-tracking) / [BCC](/outbound/bcc-emails)
* [Live log tail](/cli/live-tail)
