# `DripDrop.Policy.SendingRules`
[🔗](https://github.com/agoodway/dripdrop/blob/v0.1.0/lib/dripdrop/policy/sending_rules.ex#L1)

Applies optional per-step and per-adapter sending controls.

DripDrop does not classify sequence messages into broad operating modes.
Hosts opt into concrete rules such as recipient verification and daily
sender-mailbox caps through step or adapter config.

# `check`

```elixir
@spec check(map(), map(), map()) ::
  :ok | {:skip, binary()} | {:defer, DateTime.t(), map()} | {:error, map()}
```

Applies verified-recipient and sender daily-cap rules for a dispatch attempt.

# `daily_cap`

```elixir
@spec daily_cap(map(), map()) :: pos_integer() | nil
```

Resolves the configured sender daily cap from step or adapter config.

# `sender_domain`

```elixir
@spec sender_domain(map()) :: binary() | nil
```

Extracts the sender domain from a payload or template.

# `sender_mailbox`

```elixir
@spec sender_mailbox(map()) :: {:ok, binary()} | {:no_sender, :missing_sender}
```

Extracts the sender mailbox from a payload.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
