diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 2c6bdb93f..231b5dc49 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -37,7 +37,7 @@ If you are submitting a feature addition, enhancement, or bug fix, your checklis - [ ] Check that your article looks correct in the preview here or in a [Netlify deploy preview](https://app.netlify.com/sites/support-docs/deploys). - [ ] Check the links in your article. - [ ] Check the images in your article (if there are any) -- [ ] Check to make sure you are using markdown appropriately as outlined in `examples/article.md` in the root of the project directory and on the momentum doc's [preface article](https://support.sparkpost.com/momentum/4/4-preface) +- [ ] Check to make sure you are using markdown appropriately as outlined in `examples/article.md` in the root of the project directory and on the momentum doc's [preface article](https://docs.sparkpost.com/momentum/4/4-preface) - [ ] Check to make sure the [Copy and Tone Guidelines are followed](https://docs.google.com/document/d/1dej9J7N9M8lcbJXnT9kxyNB_EFBPHIBLZBbHaxRWqhQ/edit). #### Development Changes Checklist (some checks are automatic github actions and will not be listed here. ie. "all tests pass") diff --git a/README.md b/README.md index db91074ee..275330ce3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Netlify Status](https://api.netlify.com/api/v1/badges/0a6e71ac-b00b-45eb-a5f0-b534634f51e0/deploy-status)](https://app.netlify.com/sites/support-docs/deploys) -This repo contains the SparkPost and Momentum documentation published at https://support.sparkpost.com/docs and https://support.sparkpost.com/momentum. +This repo contains the SparkPost and Momentum documentation published at https://docs.sparkpost.com/docs and https://docs.sparkpost.com/momentum. SparkPost documentation is located in the `content/docs/` directory. @@ -109,7 +109,7 @@ _While this folder structure is encouraged for organizational purposes, any medi Both the Momentum articles and SparkPost support articles are organized into categories. The category is defined by the containing folder. -Categories can be nested to create nested URL structures. For example in the following folder structure, the file `my-article.md` will be deployed to `https://support.sparkpost.com/docs/category/subcategory/my-article` +Categories can be nested to create nested URL structures. For example in the following folder structure, the file `my-article.md` will be deployed to `https://docs.sparkpost.com/docs/category/subcategory/my-article` ``` support @@ -129,9 +129,9 @@ description: 'Description of the category here' ### Navigation -For each article page hosted on the support.sparkpost.com website, there is a sidebar menu. The top-level menu is configured through next.js. To edit this, speak to the SparkPost FE team. +For each article page hosted on the `docs.sparkpost.com` website, there is a sidebar menu. The top-level menu is configured through next.js. To edit this, speak to the SparkPost FE team. -For large sets of organized documentation it is important that there is a clear navigation and hierarchy. The subnavigation is set through the `content/` directory folder structure (so `content/momentum/` and `content/docs/`). This is used to generate the Momentum 4.x, Momentum 3.x, and Momentum Mobile navigation in the sidebar seen in the [Momentum documentation](https://support.sparkpost.com/momentum) or Help & API, Guides and Deliverability navigation in the sidebar seen in the [support docs documentation](https://support.sparkpost.com/docs/) +For large sets of organized documentation it is important that there is a clear navigation and hierarchy. The subnavigation is set through the `content/` directory folder structure (so `content/momentum/` and `content/docs/`). This is used to generate the Momentum 4.x, Momentum 3.x, and Momentum Mobile navigation in the sidebar seen in the [Momentum documentation](https://docs.sparkpost.com/momentum) or Help & API, Guides and Deliverability navigation in the sidebar seen in the [support docs documentation](https://docs.sparkpost.com/docs/) ## Deployment @@ -147,7 +147,7 @@ Deployment of support articles is handled automatically through [Netlify](https: ## Development -The following instructions walk you through how to sync your local version of this repository to your local version of the support.sparkpost.com website. This is only needed when you are debugging the sync scripts or adding new functionality. +The following instructions walk you through how to sync your local version of this repository to your local version of the `docs.sparkpost.com` website. This is only needed when you are debugging the sync scripts or adding new functionality. _**This is not a required step in contributing to the documentation**_ diff --git a/content/docs/my-account-and-profile/sso.md b/content/docs/my-account-and-profile/sso.md index e37cd0146..974067b62 100644 --- a/content/docs/my-account-and-profile/sso.md +++ b/content/docs/my-account-and-profile/sso.md @@ -4,9 +4,9 @@ title: "Single Sign-On (SSO)" description: "How to enable Single Sign-On (SSO) in SparkPost." --- -Single sign-on (SSO) allows you to login to your account using your company's preffered identify provider. You can enable SSO through any provider that supports SAML. You can also set up [SCIM user provisioning through OKTA](https://support.sparkpost.com/docs/my-account-and-profile/scim/). +Single sign-on (SSO) allows you to login to your account using your company's preffered identify provider. You can enable SSO through any provider that supports SAML. You can also set up [SCIM user provisioning through OKTA](https://docs.sparkpost.com/docs/my-account-and-profile/scim/). -Check this [article](https://support.sparkpost.com/docs/faq/difference-between-starter-and-premier/) to verify that your account's plan level supports SSO. +Check this [article](https://docs.sparkpost.com/docs/faq/difference-between-starter-and-premier/) to verify that your account's plan level supports SSO. ## Enable Single Sign-On @@ -108,7 +108,7 @@ An admin can disable SSO by following the steps in the "Disable Single Sign-On" No. Users can only use either MFA or SSO. ### Is automatic provisioning of users supported? -SCIM provisioning is supported for [OKTA](https://support.sparkpost.com/docs/my-account-and-profile/scim/). +SCIM provisioning is supported for [OKTA](https://docs.sparkpost.com/docs/my-account-and-profile/scim/). ### Do I need to re-invite users after rotating the SAML certificate? -Yes, in case the SAML certificate expires and needs to be replaced, you must re-invite the users. However, re-inviting users is not necessary when using SCIM provisioning. \ No newline at end of file +Yes, in case the SAML certificate expires and needs to be replaced, you must re-invite the users. However, re-inviting users is not necessary when using SCIM provisioning. diff --git a/content/docs/user-guide/mailgun-migration-guide.md b/content/docs/user-guide/mailgun-migration-guide.md index 4117ca03b..a0356026b 100644 --- a/content/docs/user-guide/mailgun-migration-guide.md +++ b/content/docs/user-guide/mailgun-migration-guide.md @@ -276,7 +276,7 @@ In addition you can enable your subaccount users to have permission to inject me User Roles ---------- -Mailgun and SparkPost both enable you to create users with specific roles. The SparkPost roles are: Admin, Developer, Templates, and Reporting, described [here](https://support.sparkpost.com/docs/user-guide/managing-users). +Mailgun and SparkPost both enable you to create users with specific roles. The SparkPost roles are: Admin, Developer, Templates, and Reporting, described [here](https://docs.sparkpost.com/docs/user-guide/managing-users). Alerts ------ @@ -294,7 +294,7 @@ Alerts can send notifications via email, Slack, and webhooks. Dedicated IPs, IP Pools, and auto-warmup ---------------------------------------- -SparkPost enables you to deliver email via IP addresses dedicated to your account (or subaccount). Similar to Mailgun, addresses are managed via [IP Pools](/docs/deliverability/managing-dedicated-ip-pools/). Addresses can be set to [automatically warm up](https://support.sparkpost.com/docs/user-guide/automated-ip-warmup) over time, which is helpful in building a clean sender reputation as you migrate messages across. +SparkPost enables you to deliver email via IP addresses dedicated to your account (or subaccount). Similar to Mailgun, addresses are managed via [IP Pools](/docs/deliverability/managing-dedicated-ip-pools/). Addresses can be set to [automatically warm up](https://docs.sparkpost.com/docs/user-guide/automated-ip-warmup) over time, which is helpful in building a clean sender reputation as you migrate messages across. Health Score and other SparkPost Analytics features --------------------------------------------------- diff --git a/content/docs/user-guide/mailjet-migration-guide.md b/content/docs/user-guide/mailjet-migration-guide.md index efa47e080..72349cc40 100644 --- a/content/docs/user-guide/mailjet-migration-guide.md +++ b/content/docs/user-guide/mailjet-migration-guide.md @@ -70,7 +70,7 @@ Here is a quick table with the similar terms between the two services: Where To Get Help ----------------- -If you're ready for the gritty details, check out our [DevHub](https://developers.sparkpost.com/), [API docs](https://developers.sparkpost.com/api) and [pricing](https://www.sparkpost.com/pricing/). If you have general questions, take a walk through our [support articles](https://support.sparkpost.com/). You can also [open a ticket](https://www.sparkpost.com/submit-a-ticket/) with our support team. +If you're ready for the gritty details, check out our [DevHub](https://developers.sparkpost.com/), [API docs](https://developers.sparkpost.com/api) and [pricing](https://www.sparkpost.com/pricing/). If you have general questions, take a walk through our [support articles](https://docs.sparkpost.com/). You can also [open a ticket](https://www.sparkpost.com/submit-a-ticket/) with our support team. Signing Up ---------- diff --git a/content/docs/user-guide/mandrill-migration-guide.md b/content/docs/user-guide/mandrill-migration-guide.md index 030683abd..4e108f973 100644 --- a/content/docs/user-guide/mandrill-migration-guide.md +++ b/content/docs/user-guide/mandrill-migration-guide.md @@ -93,7 +93,7 @@ SparkPost API calls are authenticated by passing a valid API key through the [H Where To Get Help ----------------- -If you're in a hurry, don't have time to read this Mandrill Migration Guide and just want the gritty details, check out our [Developer Site](https://developers.sparkpost.com/), [API reference](https://developers.sparkpost.com/api/) and [pricing](https://www.sparkpost.com/pricing/). If you have general questions, [take a look through our support articles](https://support.sparkpost.com/). +If you're in a hurry, don't have time to read this Mandrill Migration Guide and just want the gritty details, check out our [Developer Site](https://developers.sparkpost.com/), [API reference](https://developers.sparkpost.com/api/) and [pricing](https://www.sparkpost.com/pricing/). If you have general questions, [take a look through our support articles](https://docs.sparkpost.com/). Signing Up ---------- diff --git a/content/docs/user-guide/migrating-from-sendgrid.md b/content/docs/user-guide/migrating-from-sendgrid.md index d7b8e63af..922b89d88 100644 --- a/content/docs/user-guide/migrating-from-sendgrid.md +++ b/content/docs/user-guide/migrating-from-sendgrid.md @@ -68,7 +68,7 @@ First here's a quick primer on the main terminology differences between the two Where To Get Help ----------------- -If you're in a hurry, don't have time to read this SendGrid Migration Guide and just want the gritty details, check out our [DevHub](https://developers.sparkpost.com/), [API docs](https://developers.sparkpost.com/api/) and [pricing](https://www.sparkpost.com/pricing/). If you have general questions, [take a look through our support articles](https://support.sparkpost.com/). +If you're in a hurry, don't have time to read this SendGrid Migration Guide and just want the gritty details, check out our [DevHub](https://developers.sparkpost.com/), [API docs](https://developers.sparkpost.com/api/) and [pricing](https://www.sparkpost.com/pricing/). If you have general questions, [take a look through our support articles](https://docs.sparkpost.com/). Signing Up ---------- diff --git a/content/momentum/4/console-commands/delay.md b/content/momentum/4/console-commands/delay.md new file mode 100644 index 000000000..1a5f14c14 --- /dev/null +++ b/content/momentum/4/console-commands/delay.md @@ -0,0 +1,68 @@ +--- +lastUpdated: "06/30/2026" +title: "delay" +description: "delay ec_console move messages from the active queue into the delayed queue deferring the next delivery attempt by a number of seconds optional --domain --binding scoping and --meta --header filter" +--- + + +## Name + +delay — defer active-queue messages into the delayed queue + +## Synopsis + +`delay` { *`seconds`* } [ `--domain` *`name`* ] [ `--binding` *`name`* ] [ `--meta` *`key`* *`value`* | `--header` *`header_name`* *`header_line`* ] + + +## Description + +The **delay** command moves messages from the **active queue** into the **delayed queue**, deferring their next delivery attempt by *`seconds`* seconds. Messages already in the delayed queue are not affected. + +*`seconds`* is required and must be a whole number greater than zero. The command also requires **at least one** selector — `--domain`, `--binding`, `--meta`, or `--header` — so it never delays the entire active queue implicitly. + +On success the command reports how many messages were moved: + +``` +10:47:35 /tmp/2025> delay 300 --domain relay.com +Delayed 42 messages. +``` + +When a `--domain` is named but has no messages in the active queue, the command reports: + +``` +10:47:35 /tmp/2025> delay 300 --domain relay.com +No messages for relay.com found. +``` + + +### Scoping by domain and binding + +Use **`--domain`** *`name`* to restrict the operation to a single domain's active queue, and **`--binding`** *`name`* to restrict it to a single binding. The binding name is validated against the configured bindings; an unknown binding is rejected: + +``` +10:47:35 /tmp/2025> delay 600 --binding outbound-pool +Delayed 18 messages. +``` + +`--domain` and `--binding` can be combined to target a single domain on a single binding. + + +### Selective delay (optional filter) + +Optional **`--meta`** / **`--header`** filtering uses the same matching rules as the `fail` family of commands. **`--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 delayed; non-matching messages stay in the active queue. + +You cannot combine `--meta` and `--header` in the same command. + +``` +10:47:35 /tmp/2025> delay 300 --meta mo_campaign_id summer-sale +Delayed 12 messages. +``` + +``` +10:47:35 /tmp/2025> delay 120 --domain relay.com --header X-Delay-Pick alpha +Delayed 4 messages. +``` + +## See Also + +The same `--meta` / `--header` filtering clause is accepted by the [reroute queue](/momentum/4/console-commands/reroute-queue) command and the fail-family commands: [fail domain](/momentum/4/console-commands/fail-domain) · [fail domain quiet](/momentum/4/console-commands/fail-domain-quiet) · [fail all](/momentum/4/console-commands/fail-all) · [fail all quiet](/momentum/4/console-commands/fail-all-quiet) · [binding fail domain](/momentum/4/console-commands/binding-fail-domain) · [binding fail domain quiet](/momentum/4/console-commands/binding-fail-domain-quiet) diff --git a/content/momentum/4/console-commands/index.md b/content/momentum/4/console-commands/index.md index 4392bcde4..5c9677207 100644 --- a/content/momentum/4/console-commands/index.md +++ b/content/momentum/4/console-commands/index.md @@ -24,6 +24,7 @@ description: "This section documents all the non module specific console command | [config](/momentum/4/console-commands/config) | online configuration tuning for Momentum | | [count](/momentum/4/console-commands/count) | count open connections | | [counter](/momentum/4/console-commands/counter) | manage counters | +| [delay](/momentum/4/console-commands/delay) | defer active-queue messages into the delayed queue | | [delayed](/momentum/4/console-commands/delayed) | show domains with delayed queue size bigger than threshold | | [dig](/momentum/4/console-commands/dig) | submit a domain for DNS MX query | | [dns_cache](/momentum/4/console-commands/dns-cache) | manage Momentum's DNS cache | diff --git a/content/momentum/changelog/5/5-3-0.md b/content/momentum/changelog/5/5-3-0.md index 23a92f7b2..8053ffdb9 100644 --- a/content/momentum/changelog/5/5-3-0.md +++ b/content/momentum/changelog/5/5-3-0.md @@ -10,21 +10,27 @@ This section will list all of the major changes that happened with the release o | Type | Ticket | Description | | --- | --- | --- | +| Enhancement | I-1276 | The supported range of OpenSSL covers 1.1.1 (RHEL 8) through the 3.x series — all pre-1.1.1 compatibility code has been retired. A few obsolete TLS settings were removed as part of this change; see the note below. | | Feature | — | [`spamassassin`](/momentum/4/modules/spamassassin) module is a supported SpamAssassin client (SPAMC protocol over `spamd`), replacing the legacy, Sieve-based `spamc` module. | -| Feature | I-1064 | Added support for [license](/momentum/4/before-you-begin#momentum-license) signatures using ECDSA P-256 with SHA-256. | +| Feature | I-1064 | Added support for [license](/momentum/4/before-you-begin#momentum-license) signatures using ECDSA P-256 with SHA-256 ([FIPS 186-4](https://csrc.nist.gov/pubs/fips/186-4/final)), so licenses validate on deployments that enforce FIPS 140-3 at the crypto-library level. Affected deployments require a re-issued license in the new format; all others continue to validate existing DSA-2048 / SHA-1 licenses unchanged. | | Feature | I-1141 | Added an optional `limit` query parameter to the [`/stats/queues/mailq`](/momentum/4/http-api-stats/queues-mailq) HTTP API, controlling how many binding/domain pairs are ranked and returned. | | Feature | I-1152 | Added new [`fail all`](/momentum/4/console-commands/fail-all) and [`fail all quiet`](/momentum/4/console-commands/fail-all-quiet) console commands, plus optional `--meta` / `--header` filtering on other `fail` commands to selectively fail queued messages by metadata or RFC822 header match. | +| Feature | I-1162 | Added a [`delay`](/momentum/4/console-commands/delay) console command that moves messages from the active queue into the delayed queue, deferring their next delivery attempt by a given number of seconds. | | Feature | I-1172 | Added the [`ec_spool_check`](/momentum/4/executable/ec-spool-check) utility, which performs a read-only scan of a spool directory and reports metadata, body, and orphan-marker failures without driving traffic through Momentum. | | Feature | I-1214 | Removed `msys-nodejs` RPM from the Momentum bundle, to be replaced with the 3rd-party `nodejs` package. Node.js LTS 24+ must be installed separately from the system or a vendor repository. | | Feature | I-1216 | Added the [log_hires_timestamp](/momentum/4/config/ref-log-hires-timestamp) option to emit microsecond-resolution timestamps in the `mainlog`, `bouncelog`, `rejectlog`, `paniclog`, custom logs, chunk logs, and message generation logs, preserving event ordering when reading multiple log files together. | | Feature | I-1225 | Added optional `--meta` / `--header` filtering to the [`reroute queue`](/momentum/4/console-commands/reroute-queue#reroute_queue_selective) console command, to selectively move queued messages by metadata or RFC822 header match. | | Feature | I-1228 | Added the [`curfew`](/momentum/4/modules/curfew) module, scheduling recurring quiet hours during which delivery is suspended for selected bindings, binding groups, or domains. It can replace operator workflows that toggle [`suspend_delivery`](/momentum/4/config/ref-suspend-delivery). | -| Enhancement | I-1276 | The supported range of OpenSSL covers 1.1.1 (RHEL 8) through the 3.x series — all pre-1.1.1 compatibility code has been retired. A few obsolete TLS settings were removed as part of this change; see the note below. | +| Feature | I-1259 | Added **experimental** support for DKIM2 [signing](/momentum/4/dkim2/sign) and [verification](/momentum/4/dkim2/verify) through a new `dkim2` validate [module](/momentum/4/dkim2), implementing the **-04** draft version of the specification. | | Feature | I-1345 | Added a `--dry-run` preview option to the `fail` family of console commands and the `reroute queue` command, which lists the messages that would be failed or moved while leaving the queues untouched. | | Feature | TASK-144964 | The [tls_ec_curve_names](/momentum/4/config/tls-ec-curve-names) option now accepts a colon-separated list of curve or TLS group short names in preference order, instead of a single curve. | | Feature | TASK-198522 | New DNS configuration options to [rate-limit MX lookups](/momentum/4/config/ref-dns-rate-limit), preventing query bursts from overwhelming the DNS infrastructure. | | Feature | TASK-258127 | [`outbound_throttle_messages`](/momentum/4/config/ref-outbound-throttle-messages#conf.ref.outbound_throttle_messages.host_scope) and [`outbound_throttle_connections`](/momentum/4/config/ref-outbound-throttle-connections#conf.ref.outbound_throttle_connections.host_scope) may now be declared in a `host` stanza for per-MX-host rate-limiting of outbound message deliveries and connection establishment. | +| Fix | I-1030 | Fixed multiline SMTP responses being silently requeued with no log entries when the final response line carries a different status code than the preceding continuation lines (for example, a `220-` banner continuation followed by a `521` rejection). | +| Fix | I-1047 | Improved message transfer between nodes over XFER. The XFER server rejects bodyless reconstructed messages so the client retries instead of losing the message. | +| Fix | I-1058 | Fixed a buffer underread that occurred when a MIME part body consisted entirely of CR/LF characters, which could cause render failures in the paniclog. | | Fix | TASK-227757 | [`ha_proxy_client`](/momentum/4/modules/ha-proxy-client) now re-resolves a hostname-based `ha_proxy_server` during each health check, so backend IP changes are picked up automatically without restart. | +| Fix | TASK-259740 | Fixed [custom_logger](/momentum/4/modules/custom-logger) reception log lines being dropped when `reception_format` includes the `%H` (remote IP) macro and the message is injected over a UNIX domain socket (with no IP). | diff --git a/content/momentum/manuals/index.md b/content/momentum/manuals/index.md index df923b8e8..1216e851b 100644 --- a/content/momentum/manuals/index.md +++ b/content/momentum/manuals/index.md @@ -12,6 +12,7 @@ customers — installation guides, upgrade guides, and release notes — for ## Available manuals +- [Release Notes](/momentum/manuals/release-notes) - [Installation Manual](/momentum/manuals/installation-manual) - [Upgrade Manual](/momentum/manuals/upgrade-manual) — MTA-only - [Enabling APIs & Message Generation](/momentum/manuals/enabling-apis-message-generation) — Transmissions API, SMTPAPI, Message Generation diff --git a/content/momentum/manuals/release-notes.md b/content/momentum/manuals/release-notes.md new file mode 100644 index 000000000..a6b4dd0ea --- /dev/null +++ b/content/momentum/manuals/release-notes.md @@ -0,0 +1,81 @@ +--- +title: "Release Notes" +subtitle: "Momentum" +version: "5.3" +date: "July 2026" +description: "Release notes for Momentum 5.3 — summary, new features, defects fixed, installation and upgrade pointers, and known issues for Red Hat Enterprise Linux (RHEL) 8, 9, and 10." +lastUpdated: "07/20/2026" +--- + +# 1. Summary + +The Momentum 5.3 release in July 2026 is available for Red Hat Enterprise Linux (RHEL) 8, 9, and 10. If you still need to run Momentum on RHEL 7 (and its CentOS equivalent), which reached its EOL in 2024, the latest release for that was Momentum 4.6. + +The Momentum 5.3 [changelog](https://docs.sparkpost.com/momentum/changelog/5/5-3-0) provides details of all changes since the previous major release, organized in the list by "Feature", "Fix", or "Security Fix". + +# 2. New Features + +- A new **spamassassin** client module (SPAMC protocol over **spamd**), replacing the legacy Sieve-based **spamc** module. +- A new **curfew** module for scheduling recurring quiet hours during which delivery is suspended for selected bindings, binding groups, or domains. +- A new, ***experimental*** support for DKIM2 signing and verification through a **dkim2** module. +- Optional **limit** query parameter to the **/stats/queues/mailq** HTTP API. +- Enhancements in the **fail** family of **ec_console** commands: + - New "**fail all**" and "**fail all quiet**" commands. + - Optional **--meta** and **--header** filtering to selectively fail messages. + - **--dry-run** preview option to list the messages that would fail. +- Optional **--meta** and **--header** filtering to selectively reroute messages using the "**reroute queue**" **ec_console** command, together with a **--dry-run** preview option to list the messages that would be moved. +- New **delay** **ec_console** command to move messages from the active queue into the delayed queue. +- **tls_ec_curve_names** now accepts a list of curves/groups in preference order. +- New **ec_spool_check** utility, for a read-only scan of a spool directory. +- The **outbound_throttle_messages** and **outbound_throttle_connections** can now be declared in a host stanza for per-MX-host rate-limiting. +- The supported range of OpenSSL now covers 1.1.1 (RHEL 8) through the 3.x series. +- Support for license signatures using ECDSA P-256, for enhanced FIPS compliance. +- New DNS family of configuration options to rate-limit MX lookups, preventing query bursts. +- Added the **log_hires_timestamp** option to emit microsecond-resolution timestamps in the log files. +- Removed the **msys-nodejs** package from the webhooks bundle, to be replaced with a 3rd-party Node.js 24 LTS package. +- Other changes and improvements. + +# 3. Defects Fixed + +The following defects were fixed in Momentum 5.3: + +- Fixed an issue with **ha_proxy_client** not re-resolving a hostname when the remote server changed the IP address. +- Fixed **custom_logger** log lines being dropped when the format includes the **%H** (remote IP) macro and the message is injected with no IP (e.g., over a UNIX domain socket). + +# 4. Installation & Upgrade + +## 4.1. Installation + +1. Instructions for new installations of Momentum 5.3 MTA bundles are available in a PDF document under the entry for this release on our support site: [Product Downloads page](https://support.messagesystems.com/). + +2. Following the initial installation and configuration of Momentum 5.3, the 5.3 Webhooks, REST Transmissions API, and Inline Message Generation functions can be added with separate procedures. Instructions for these operations are available from our Customer Support. Please contact them before upgrading if the additional functionality is desired. + +## 4.2. Upgrade + +Instructions for upgrading from previous releases to the Momentum 5.3 MTA release configuration are located in a PDF document under the entry for this release on the Support site's [Product Downloads page](https://support.messagesystems.com/). + +# 5. Known Issues and Changed Behaviors + +There are none for this release. + +# 6. Final Note + +If you are still using the Momentum cluster configuration server (**ecconfigd_ctl**) and its client (**eccfg**), *which have been deprecated since version 4.3.1*, you must manually install some dependencies: + +```bash +cd /var/tmp/momentum-mta-5.3.x.yyyyy +sudo dnf install -y msys-ecelerity-config-server-5.3*.rpm +sudo dnf install -y msys-ecelerity-config-client-5.3*.rpm +sudo dnf install -y gcc +sudo cpan install Params::Validate YAML::XS Expect + +# create the private key and a self-signed certificate, +# or specify your own at /opt/msys/ecelerity/etc/ecconfigd.conf +sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ + -keyout /var/ecconfigd/apache/server.key \ + -out /var/ecconfigd/apache/server.crt + +# use ecconfigd_ctl and eccfg as earlier +sudo /opt/msys/ecelerity/bin/ecconfigd_ctl start +/opt/msys/ecelerity/bin/eccfg # shows usage +``` diff --git a/content/momentum/manuals/upgrade-manual.md b/content/momentum/manuals/upgrade-manual.md index 9c671eb6b..c88fe2f8d 100644 --- a/content/momentum/manuals/upgrade-manual.md +++ b/content/momentum/manuals/upgrade-manual.md @@ -286,7 +286,7 @@ The following directories and files that were installed in **/opt/msys/3rdParty/ 1. Copy over the config (e.g., contents of **/opt/msys/ecelerity/etc/conf**). -2. If there are still spooled messages on the old server, they can be imported into the new server. After copying the directories containing the spool files (e.g., **/var/spool/ecelerity**) to the new server, use the spool import command — [https://support.sparkpost.com/momentum/4/console-commands/spool-import](https://support.sparkpost.com/momentum/4/console-commands/spool-import). +2. If there are still spooled messages on the old server, they can be imported into the new server. After copying the directories containing the spool files (e.g., **/var/spool/ecelerity**) to the new server, use the spool import command — [https://docs.sparkpost.com/momentum/4/console-commands/spool-import](https://docs.sparkpost.com/momentum/4/console-commands/spool-import). 3. If desired and applicable, copy the PostgreSQL database by following the instructions above. diff --git a/content/momentum/navigation.yml b/content/momentum/navigation.yml index 2d41e8592..6250aa3e0 100644 --- a/content/momentum/navigation.yml +++ b/content/momentum/navigation.yml @@ -1,6 +1,8 @@ - link: /momentum/manuals title: Online manuals items: + - link: /momentum/manuals/release-notes + title: Release Notes - link: /momentum/manuals/installation-manual title: Installation Manual - link: /momentum/manuals/upgrade-manual