From 918d60a1f56e6a130de758e3d5d4f3feab5094de Mon Sep 17 00:00:00 2001 From: Julie Zhao Date: Wed, 22 Apr 2026 19:50:03 -0400 Subject: [PATCH 1/3] add 'fail all' command; update 'fail domain' and 'binding fail domain' with '--meta' and '--header' options --- content/momentum/4/4-console-commands.md | 4 +- .../binding-fail-domain-quiet.md | 20 ++++++-- .../4/console-commands/binding-fail-domain.md | 22 +++++++-- .../4/console-commands/fail-all-quiet.md | 47 +++++++++++++++++++ .../momentum/4/console-commands/fail-all.md | 47 +++++++++++++++++++ .../4/console-commands/fail-domain-quiet.md | 30 ++++++++++-- .../4/console-commands/fail-domain.md | 18 ++++--- content/momentum/4/console-commands/index.md | 4 +- 8 files changed, 171 insertions(+), 21 deletions(-) create mode 100644 content/momentum/4/console-commands/fail-all-quiet.md create mode 100644 content/momentum/4/console-commands/fail-all.md diff --git a/content/momentum/4/4-console-commands.md b/content/momentum/4/4-console-commands.md index 4136666f6..ac0d18814 100644 --- a/content/momentum/4/4-console-commands.md +++ b/content/momentum/4/4-console-commands.md @@ -1,5 +1,5 @@ --- -lastUpdated: "03/26/2020" +lastUpdated: "04/15/2026" title: "Console Commands Summary" description: "This table lists all console commands alphabetically giving a brief description Click the command name to see detailed information A module name appears in the Module column for commands that are module specific For module specific commands to work you must have the module loaded Table 67 1 All console..." --- @@ -96,6 +96,8 @@ This table lists all console commands alphabetically giving a brief description. | [ds_ldap show connection cache stats](/momentum/4/modules/ds-core#modules.ds_ldap.console) – Output statistics relating to the connection cache | 4.0 | ds_ldap | module | | [ec_logger:instance_name help](/momentum/4/modules/ec-logger#modules.ec_logger.console) – Display the available commands | 4.0 | ec_logger | module | | [ec_logger:instance_name reopen logs](/momentum/4/modules/ec-logger#modules.ec_logger.console) – Close and reopen the logs | 4.0 | ec_logger | module | +| [fail all quiet](/momentum/4/console-commands/fail-all-quiet) – Fail matching queued messages globally without generating bounces (filter required) | 5.3 |   | queue admin | +| [fail all](/momentum/4/console-commands/fail-all) – Fail matching queued messages globally with a bounce message (filter required) | 5.3 |   | queue admin | | [fail domain quiet](/momentum/4/console-commands/fail-domain-quiet) – Fail messages for a domain without generating bounces | 4.0 |   | misc | | [fail domain](/momentum/4/console-commands/fail-domain) – Fail messages for a domain with a bounce message | 4.0 |   | misc | | [fingerprint cache summary](/momentum/4/console-commands/fingerprint-cache-summary) – Display the current cache size | 4.0 | fingerprint | policy | diff --git a/content/momentum/4/console-commands/binding-fail-domain-quiet.md b/content/momentum/4/console-commands/binding-fail-domain-quiet.md index 1ab3d1af0..51cde9fdf 100644 --- a/content/momentum/4/console-commands/binding-fail-domain-quiet.md +++ b/content/momentum/4/console-commands/binding-fail-domain-quiet.md @@ -1,7 +1,7 @@ --- -lastUpdated: "03/26/2020" +lastUpdated: "04/15/2026" title: "binding fail domain quiet" -description: "binding fail domain quiet fail messages for a domain on a binding without generating bounces binding fail domain quiet binding name domain name The binding fail domain quiet command allows the administrative failure of all messages bound for the specified domain on the specified binding in such a way that..." +description: "binding fail domain quiet ec_console selective purge --meta --header filter by binding" --- @@ -11,7 +11,7 @@ binding fail domain quiet — fail messages for a domain on a binding without ge ## Synopsis -`binding fail domain quiet` { *`binding_name`* } { *`domain_name`* } +`binding fail domain quiet` [ `--meta` *`key`* *`value`* | `--header` *`header_name`* *`header_line`* ] { *`binding_name`* } { *`domain_name`* | `all` } [ *`note`* … ] ## Description @@ -29,7 +29,19 @@ You may substitute `all` for the domain name to apply to all domains. ecelerity> binding fail domain quiet BINDING1 all All domains purged. 62415 messages failed. ``` + + +### Selective purge (optional filter) + +Optional **`--meta`** / **`--header`** clauses use the same matching rules as [**fail domain quiet**](/momentum/4/console-commands/fail-domain-quiet#fail_domain_quiet_selective). **`--header`** uses [**physical-line matching**](/momentum/4/console-commands/fail-domain-quiet#header_filter_physical_lines). Place **at most one** clause immediately after `binding fail domain quiet` and **before** the binding name. Only messages on that binding that match the filter (and domain / `all`) are failed. + +For a binding-agnostic global purge by filter only, see [**fail all quiet**](/momentum/4/console-commands/fail-all-quiet). + +``` +ecelerity> binding fail domain quiet --header X-Priority high BINDING1 unresolvableproblems.com +unresolvableproblems.com purged. 3 messages failed. +``` ## See Also -[binding fail domain](/momentum/4/console-commands/binding-fail-domain) \ No newline at end of file +[binding fail domain](/momentum/4/console-commands/binding-fail-domain) · [fail all quiet](/momentum/4/console-commands/fail-all-quiet) diff --git a/content/momentum/4/console-commands/binding-fail-domain.md b/content/momentum/4/console-commands/binding-fail-domain.md index 9345fd37f..982d33aef 100644 --- a/content/momentum/4/console-commands/binding-fail-domain.md +++ b/content/momentum/4/console-commands/binding-fail-domain.md @@ -1,7 +1,7 @@ --- -lastUpdated: "03/26/2020" +lastUpdated: "04/15/2026" title: "binding fail domain" -description: "binding fail domain fail messages for a domain on a binding with a bounce message binding fail domain binding name domain name message The binding fail domain command allows the administrative failure of all messages bound for the specified domain on the specified binding If political issues arise that cannot..." +description: "binding fail domain ec_console selective purge --meta --header filter custom bounce message" --- @@ -11,7 +11,7 @@ binding fail domain — fail messages for a domain on a binding with a bounce me ## Synopsis -`binding fail domain` { *`binding_name`* } { *`domain_name`* } [ *`message`* ] +`binding fail domain` [ `--meta` *`key`* *`value`* | `--header` *`header_name`* *`header_line`* ] { *`binding_name`* } { *`domain_name`* | `all` } [ *`message`* … ] ## Description @@ -36,9 +36,21 @@ To pass in a custom failure message, you can append it to your command line, for ``` 10:47:35 /tmp/2025> binding fail domain BINDING1 unresolvableproblems.com 554 Administratively failed by Bob -unresolvableproblems.com purged, 62415 messages failed. +unresolvableproblems.com purged. 62415 messages failed. +``` + + +### Selective purge (optional filter) + +Optional **`--meta`** / **`--header`** filtering matches [**fail domain quiet**](/momentum/4/console-commands/fail-domain-quiet#fail_domain_quiet_selective); **`--header`** respects [**physical-line matching**](/momentum/4/console-commands/fail-domain-quiet#header_filter_physical_lines). Place **at most one** clause after `binding fail domain` and before the binding name. Remaining tokens after the domain (or `all`) are still treated as the optional custom failure message when present. + +To fail messages by the same filter **without** naming a binding or domain, use [**fail all**](/momentum/4/console-commands/fail-all) or [**fail all quiet**](/momentum/4/console-commands/fail-all-quiet) instead (filter **required**). + +``` +10:47:35 /tmp/2025> binding fail domain --meta mo_campaign_id promo BINDING1 unresolvableproblems.com 554 Purged campaign +unresolvableproblems.com purged. 5 messages failed. ``` ## See Also -[binding fail domain quiet](/momentum/4/console-commands/binding-fail-domain-quiet) \ No newline at end of file +[binding fail domain quiet](/momentum/4/console-commands/binding-fail-domain-quiet) · [fail all](/momentum/4/console-commands/fail-all) diff --git a/content/momentum/4/console-commands/fail-all-quiet.md b/content/momentum/4/console-commands/fail-all-quiet.md new file mode 100644 index 000000000..3b9dd7319 --- /dev/null +++ b/content/momentum/4/console-commands/fail-all-quiet.md @@ -0,0 +1,47 @@ +--- +lastUpdated: "04/15/2026" +title: "fail all quiet" +description: "fail all quiet ec_console fail queued messages globally by meta or RFC822 header match without bounces --meta --header required filter" +--- + + + +## Name + +fail all quiet — fail matching messages everywhere without generating bounces + +## Synopsis + +`fail all quiet` `--meta` *`key`* *`value`* \| `--header` *`header_name`* *`header_line`* [ *`note`* … ] + +## Description + +The **fail all quiet** command administratively fails queued messages **across every domain** (every active and delayed queue in the mail system) according to **filter** criteria. Unlike **fail domain quiet**, there is **no domain argument**—only messages matching the mandatory filter are failed. + +**`--meta`** / **`--header`** matching follows the same rules as [**fail domain quiet** selective purge](/momentum/4/console-commands/fail-domain-quiet#fail_domain_quiet_selective). You must specify **exactly one** clause: either **`--meta`** or **`--header`**, never both. + +Any tokens **after** the `--meta` / `--header` clause become the optional administrative failure *note*, joined like other purge commands. + +Output reports how many matching messages were failed: + +``` +All domains purged. 742 messages failed. +``` + + + +**Important:** **`--meta`** / **`--header`** filter is **required**. Running `fail all quiet` without a filter is rejected. Global header matching has the **same folded-header limitation** documented under [**physical header lines**](/momentum/4/console-commands/fail-domain-quiet#header_filter_physical_lines). + +### Examples + +``` +ecelerity> fail all quiet --meta mo_campaign_id end-of-sale +``` + +``` +ecelerity> fail all quiet --header List-Unsubscribe mailto:list@example.com Purged obsolete campaign mail +``` + +## See Also + +[fail all](/momentum/4/console-commands/fail-all) · [fail domain quiet](/momentum/4/console-commands/fail-domain-quiet) · [binding fail domain quiet](/momentum/4/console-commands/binding-fail-domain-quiet) diff --git a/content/momentum/4/console-commands/fail-all.md b/content/momentum/4/console-commands/fail-all.md new file mode 100644 index 000000000..ee4b76d3e --- /dev/null +++ b/content/momentum/4/console-commands/fail-all.md @@ -0,0 +1,47 @@ +--- +lastUpdated: "04/15/2026" +title: "fail all" +description: "fail all ec_console globally fail queued messages matching --meta or --header filter bounce optional note" +--- + + + +## Name + +fail all — fail matching messages everywhere with bounce behavior + +## Synopsis + +`fail all` `--meta` *`key`* *`value`* \| `--header` *`header_name`* *`header_line`* [ *`note`* … ] + +## Description + +The **fail all** command administratively fails queued messages **across every domain** (every active and delayed queue) according to **filter** criteria. Unlike **fail domain**, there is **no domain argument**—only messages matching the mandatory filter are failed. + +Matching uses the same **`--meta`** / **`--header`** rules as [**fail domain quiet**](/momentum/4/console-commands/fail-domain-quiet#fail_domain_quiet_selective): **exactly one** clause, either **`--meta`** or **`--header`**. + +When **fail all** is used (**not** **fail all quiet**), failed messages follow normal permanent-failure disposition (including bounce generation when Generate_Bounces is enabled), analogous to **fail domain** versus **fail domain quiet**. + +Tokens after the filter clause are joined into an optional administrative failure *note*, same as other purge commands. + +``` +All domains purged. 742 messages failed. +``` + + + +**Important:** **`--meta`** / **`--header`** filter is **required**. Header matching observes the **physical-line** limitation described under [**folded headers**](/momentum/4/console-commands/fail-domain-quiet#header_filter_physical_lines). + +### Examples + +``` +ecelerity> fail all --header X-Ecconsole-Purge yes +``` + +``` +ecelerity> fail all --meta tenant_id churned 554 Tenant removed — mail purged +``` + +## See Also + +[fail all quiet](/momentum/4/console-commands/fail-all-quiet) · [fail domain](/momentum/4/console-commands/fail-domain) · [binding fail domain](/momentum/4/console-commands/binding-fail-domain) diff --git a/content/momentum/4/console-commands/fail-domain-quiet.md b/content/momentum/4/console-commands/fail-domain-quiet.md index 7de460c57..ed97cfea3 100644 --- a/content/momentum/4/console-commands/fail-domain-quiet.md +++ b/content/momentum/4/console-commands/fail-domain-quiet.md @@ -1,7 +1,7 @@ --- -lastUpdated: "03/26/2020" +lastUpdated: "04/15/2026" title: "fail domain quiet" -description: "fail domain quiet fail messages for a domain without generating bounces fail domain quiet domain name The fail domain quiet command allows the administrative failure of all messages bound for the specified domain without sending a bounce message even if Generate Bounces is set in the configuration file Its usage..." +description: "fail domain quiet ec_console selectively fail messages by metadata or RFC822 header match without bounces optional --meta --header filter" --- @@ -11,7 +11,7 @@ fail domain quiet — fail messages for a domain without generating bounces ## Synopsis -`fail domain quiet` { *`domain_name`* } +`fail domain quiet` [ `--meta` *`key`* *`value`* | `--header` *`header_name`* *`header_line`* ] { *`domain_name`* } [ *`note`* … ] ## Description @@ -22,7 +22,29 @@ The **fail domain quiet** command allows the administrative failure 10:47:35 /tmp/2025> fail domain quiet unresolvableproblems.com unresolvableproblems.com purged, 62415 messages failed. ``` + + +### Selective purge (optional filter) + +You may restrict which messages are failed by adding **at most one** optional clause **before** the domain name: + +| Clause | Meaning | +| --- | --- | +| `--meta` *key* *value* | Fail only messages whose message **or** connection validation context has *key* with exactly *value*. Message context is checked first; connection context is used when the key is not set on the message (for example variables provided through **XSETCONTEXT** during injection). | +| `--header` *name* *line* | Fail only messages where the first MIME part has header *name* and **one physical line** of that header’s value equals *line* (useful when a header is folded across lines). | + + +**Folded headers / multi-line values:** Matching uses **physical** RFC822 header lines only. Each continuation line created by folding is tested separately against the single *line* operand. There is **no** match against the unfolded header body as one multi-line string. The *line* you pass on the ec_console command is **one** token string; it must equal **exactly one** stored physical line of that header’s value (including typical leading whitespace on folded continuation lines). If your selection logic needs to treat the whole logical header value as one unit, prefer **`--meta`** or external tooling. + +You cannot combine `--meta` and `--header` in the same command. With no filter, every queued message for the domain is failed (original behavior). + +Any tokens after the domain name are joined into an optional administrative failure note (same as without a filter). + +``` +10:47:35 /tmp/2025> fail domain quiet --meta mo_campaign_id summer-sale unresolvableproblems.com +unresolvableproblems.com purged. 12 messages failed. +``` ## See Also -[fail domain](/momentum/4/console-commands/fail-domain) \ No newline at end of file +[fail domain](/momentum/4/console-commands/fail-domain) · [fail all quiet](/momentum/4/console-commands/fail-all-quiet) diff --git a/content/momentum/4/console-commands/fail-domain.md b/content/momentum/4/console-commands/fail-domain.md index 84fe7e8f9..37ee043a0 100644 --- a/content/momentum/4/console-commands/fail-domain.md +++ b/content/momentum/4/console-commands/fail-domain.md @@ -1,7 +1,7 @@ --- -lastUpdated: "03/26/2020" +lastUpdated: "04/15/2026" title: "fail domain" -description: "fail domain fail messages for a domain with a bounce message fail domain domain name The fail domain command allows the administrative failure of all messages bound for the specified domain If political issues arise that cannot be resolved or if the domain has been discontinued it may be necessary..." +description: "fail domain ec_console selectively fail messages by metadata or RFC822 header match optional --meta --header filter bounce" --- @@ -11,7 +11,7 @@ fail domain — fail messages for a domain with a bounce message ## Synopsis -`fail domain` { *`domain_name`* } +`fail domain` [ `--meta` *`key`* *`value`* | `--header` *`header_name`* *`header_line`* ] { *`domain_name`* } [ *`note`* … ] ## Description @@ -22,12 +22,18 @@ For example, the following command could be used to fail all message for the dom ``` 10:47:35 /tmp/2025> fail domain unresolvableproblems.com -unresolvableproblems.com purged, 62415 messages failed. +unresolvableproblems.com purged. 62415 messages failed. ``` Usually, the command is immediately proceded or followed by "blackholing" the domain by issuing a command such as: -`10:47:35 /tmp/2025> config set domain unresolvableproblems.com blackhole inline` +`10:47:35 /tmp/2025> config set domain unresolvableproblems.com blackhole inline` + + +### Selective purge (optional filter) + +Optional **`--meta`** / **`--header`** filtering uses the same rules as [**fail domain quiet**](/momentum/4/console-commands/fail-domain-quiet#fail_domain_quiet_selective). **`--header`** compares **physical header lines** only—see [**folded headers**](/momentum/4/console-commands/fail-domain-quiet#header_filter_physical_lines). With a filter, only matching messages are failed; without a filter, all messages for the domain are failed. + ## See Also -[fail domain quiet](/momentum/4/console-commands/fail-domain-quiet) \ No newline at end of file +[fail domain quiet](/momentum/4/console-commands/fail-domain-quiet) · [fail all](/momentum/4/console-commands/fail-all) diff --git a/content/momentum/4/console-commands/index.md b/content/momentum/4/console-commands/index.md index 1eb37278b..4392bcde4 100644 --- a/content/momentum/4/console-commands/index.md +++ b/content/momentum/4/console-commands/index.md @@ -1,5 +1,5 @@ --- -lastUpdated: "06/01/2024" +lastUpdated: "04/15/2026" title: "Category File" type: "custom" name: "Non-Module-Specific Console Commands" @@ -29,6 +29,8 @@ description: "This section documents all the non module specific console command | [dns_cache](/momentum/4/console-commands/dns-cache) | manage Momentum's DNS cache | | [domain](/momentum/4/console-commands/domain) | show domain statistics | | [domain all](/momentum/4/console-commands/domain-all) | show statistics for all domains | +| [fail all](/momentum/4/console-commands/fail-all) | fail matching queued messages globally (filter required) with a bounce message | +| [fail all quiet](/momentum/4/console-commands/fail-all-quiet) | fail matching queued messages globally (filter required) without generating bounces | | [fail domain](/momentum/4/console-commands/fail-domain) | fail messages for a domain with a bounce message | | [fail domain quiet](/momentum/4/console-commands/fail-domain-quiet) | fail messages for a domain without generating bounces | | [fingerprint cache summary](/momentum/4/console-commands/fingerprint-cache-summary) | display the current cache size | From 2949d7ecfb576ed2c4381a075b74b8916568aede Mon Sep 17 00:00:00 2001 From: Julie Zhao Date: Thu, 23 Apr 2026 16:11:25 -0400 Subject: [PATCH 2/3] Update content/momentum/4/4-console-commands.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- content/momentum/4/4-console-commands.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/momentum/4/4-console-commands.md b/content/momentum/4/4-console-commands.md index ac0d18814..ee93ab660 100644 --- a/content/momentum/4/4-console-commands.md +++ b/content/momentum/4/4-console-commands.md @@ -96,8 +96,8 @@ This table lists all console commands alphabetically giving a brief description. | [ds_ldap show connection cache stats](/momentum/4/modules/ds-core#modules.ds_ldap.console) – Output statistics relating to the connection cache | 4.0 | ds_ldap | module | | [ec_logger:instance_name help](/momentum/4/modules/ec-logger#modules.ec_logger.console) – Display the available commands | 4.0 | ec_logger | module | | [ec_logger:instance_name reopen logs](/momentum/4/modules/ec-logger#modules.ec_logger.console) – Close and reopen the logs | 4.0 | ec_logger | module | -| [fail all quiet](/momentum/4/console-commands/fail-all-quiet) – Fail matching queued messages globally without generating bounces (filter required) | 5.3 |   | queue admin | | [fail all](/momentum/4/console-commands/fail-all) – Fail matching queued messages globally with a bounce message (filter required) | 5.3 |   | queue admin | +| [fail all quiet](/momentum/4/console-commands/fail-all-quiet) – Fail matching queued messages globally without generating bounces (filter required) | 5.3 |   | queue admin | | [fail domain quiet](/momentum/4/console-commands/fail-domain-quiet) – Fail messages for a domain without generating bounces | 4.0 |   | misc | | [fail domain](/momentum/4/console-commands/fail-domain) – Fail messages for a domain with a bounce message | 4.0 |   | misc | | [fingerprint cache summary](/momentum/4/console-commands/fingerprint-cache-summary) – Display the current cache size | 4.0 | fingerprint | policy | From 6bc5afb1036c491fce4bd523075c2e4e8783ce1d Mon Sep 17 00:00:00 2001 From: Julie Zhao Date: Thu, 23 Apr 2026 16:11:54 -0400 Subject: [PATCH 3/3] Update content/momentum/4/console-commands/fail-domain.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- content/momentum/4/console-commands/fail-domain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/momentum/4/console-commands/fail-domain.md b/content/momentum/4/console-commands/fail-domain.md index 37ee043a0..6f95b4463 100644 --- a/content/momentum/4/console-commands/fail-domain.md +++ b/content/momentum/4/console-commands/fail-domain.md @@ -25,7 +25,7 @@ For example, the following command could be used to fail all message for the dom unresolvableproblems.com purged. 62415 messages failed. ``` -Usually, the command is immediately proceded or followed by "blackholing" the domain by issuing a command such as: +Usually, the command is immediately preceded or followed by "blackholing" the domain by issuing a command such as: `10:47:35 /tmp/2025> config set domain unresolvableproblems.com blackhole inline`