Mumara Campaigns 7.2
Release Date: September 18, 2026 Type: Minor Release Previous Version: 7.1
Version 7.2 is a localization and resilience release. The headline is that the interface now translates completely into every available language: an audit of the whole application turned up roughly 700 pieces of text that were fixed in English regardless of the account's language setting — contact timeline events, statistics summary cards and tooltips, the segment and dynamic-content filter builders, form placeholders, settings pages, confirmation dialogs and the install and update wizards among them — and all of them now follow the selected language, with professional translations added for every one of the 17 non-English languages alongside English.
7.2 also completes the click-link protection started in 7.1. Links in your emails now carry a tamper-proof signature covering the destination they point at, and every path that forwards a click verifies it before sending anyone onward — including tracking domains served by a separate tracking server or by the cloaking file, which the earlier protection could not reach.
The rest of the release is about things quietly stopping. A bounce address or feedback loop is no longer switched off the first time its mailbox cannot be reached, so a mail server restart no longer halts bounce and complaint processing until somebody notices; every mailbox connection the application opens is now time-limited, so one unreachable server can no longer hold up every account behind it or leave a Verify button stuck on Verifying…. Exporting a statistics-based segment now completes in a fraction of the time and can no longer report success with nothing to download. Unsubscribe works again on tracking domains that use the cloaking file. And automated scanners probing the public web form address can no longer fill the Issues list and the application log with meaningless entries.
Highlights
| Area | Summary |
|---|---|
| Complete interface translation | Roughly 700 pieces of interface text that were stuck in English now follow the account's language setting, with professional translations in all 17 non-English languages |
| Translation key fixes | Labels that could never translate because they pointed at invalid keys — the "(Blocked)" broadcast-log marker, "Select Groups", the White Labeling preloader tooltip — now follow the selected language |
| Signed click destinations | Click links carry a tamper-proof signature covering their destination, and every forwarding path verifies it — including separate tracking servers and the cloaking file |
| Cloaking file refresh | Sending Domains flags every tracking domain still running the older cloaking file and offers the updated one to download |
| Mailbox failure tolerance | A bounce address or feedback loop is marked Degraded and retried rather than switched off on a single unreachable mailbox; only repeated failures deactivate it |
| Bounded mailbox connections | Every mailbox check and every processing run is time-limited, so one dead mailbox no longer stalls the accounts queued behind it |
| Segment export performance | Statistics-based segment exports complete in a fraction of the time — contacts are exported one row each instead of paired with every send and open |
| Reliable export results | An export can no longer be mistaken for abandoned, duplicated, purged mid-write, or reported complete with nothing to download |
| Unsubscribe on cloaked domains | The unsubscribe confirmation and tracking pixel are served correctly again on tracking domains using the cloaking file |
| Fewer server errors | Pages that read the application's global settings — saved sending criteria, the license pages, the sending-node group tree — no longer fail with a server error |
| Gmail authorization | Pasting an authorization code no longer fails with "Malformed auth code", and an unreachable Google now says so instead of reporting a missing permission |
| Web form abuse | Automated scanners can no longer fill the Issues list and the log with bogus web form entries, with no effect on genuine sign-ups |
| Session device details | The Security page's active-sessions list shows each session's real operating system and browser instead of always reading "Windows 10.0" and "Google Chrome 79" |
| Campaign sending | Campaigns no longer fail outright for clients belonging to a client group that was saved with no options selected |
| Update page honesty | An unreachable update server is reported as unreachable, instead of its response being shown as the latest available version |
Before You Update
7.2 is a minor release with no breaking changes. A short background migration runs automatically during the update — there are no manual steps.
How to Update
Navigate to Tools → Update in the admin panel, choose your update channel (Stable is recommended for production), and click Begin Update. You can review the full changelog for the version you're about to install right on that screen before you begin.
If you use tracking domains that run the self-hosted cloaking file, those domains need an updated copy of that file before the new click-link protection applies to them. After updating, open Sending Domains — every domain still running the older file is flagged there, with the updated file offered for download. Existing links keep working in the meantime.
Take a quick database and files backup before updating. It costs nothing and gives you a clean rollback path.
Server requirements are unchanged from 7.1 — PHP 8.4 (with 8.3 and 8.5 also supported).
Interface Translation
The interface now translates completely
Until now, parts of the application stayed in English no matter which language an account had selected. A full audit found roughly 700 pieces of interface text in that state, spread across the areas you use most:
- Contact timeline events
- Statistics summary cards and their tooltips
- The segment and dynamic-content filter builders
- Form placeholders and helper text
- Settings pages and confirmation dialogs
- The install and update wizards
All of them now follow the account's language setting, and professional translations were added for every one of the 17 non-English languages alongside English.
Set your language under your profile and the interface changes with it — including the screens that previously stayed in English regardless of the setting.
Labels that could never translate
A handful of labels pointed at translation keys that did not exist, so they could never be translated no matter how complete the language file was. These now use proper keys and follow the selected language:
- The (Blocked) marker on the broadcast log filters
- The Select Groups picker in the dynamic-content builder
- The Preloader Image tooltip in White Labeling
Error pages carried the wrong tab title
The application's error pages showed a leftover Lists title in the browser tab. They now show a properly translated Error title.
Click-Link Protection
Signed click destinations, verified everywhere
7.1 hardened the click-tracker so it would only redirect to destinations belonging to the broadcast. 7.2 completes that work: click links now carry a tamper-proof signature covering the destination itself, and every path that forwards a click verifies the signature before sending anyone onward. That includes the two paths the earlier protection could not reach:
- Tracking domains served by a separate tracking server
- Tracking domains served by the cloaking file on your own server
A link whose destination has been altered is refused with a clear notice instead of forwarding the visitor.
Links in emails you have already sent keep working. For a settling-in period the check only reports what it would have refused rather than refusing it, so nothing is turned away while you confirm everything looks right.
Cloaking-file domains need the newer file
The protection can only apply on a cloaking-file tracking domain once that domain has an updated copy of the file. Sending Domains now flags every domain still running the older version and offers the updated file to download, so you can see at a glance which domains still need attention.
Bounce Addresses & Feedback Loops
One unreachable mailbox no longer switches the account off
A single failed connection used to deactivate a bounce address or feedback loop outright. A mail server restarting, or a brief network fault, was enough — and bounce or complaint processing then stayed stopped until somebody noticed and turned the account back on.
Now the first failure only marks the account Degraded on the Bounce Addresses and Feedback Loops listings, skips it for that run, and retries it on the next one. Only repeated consecutive failures switch it off, so a genuinely wrong password is still caught within a few runs.
A mailbox having a bad few minutes now shows a Degraded badge and keeps working, instead of silently going inactive. Hovering the badge shows how many consecutive runs have failed and the last error reported.
You can tune this under Application Settings → Performance:
| Setting | Default | What it does |
|---|---|---|
| Consecutive failed runs before deactivating | 3 | How many runs in a row a mailbox may fail to connect before it is switched off |
| Degraded period before deactivating (minutes) | 180 | A mailbox that has kept failing for this long is switched off even if the run count was not reached |
Every mailbox connection is now time-limited
An unreachable mail server used to be waited on until the operating system gave up, which can take minutes. Two things came of that, and both are fixed:
- Verify Connection on the feedback-loop form, and the mailbox test on the bounce-address and integration forms, could hang on Verifying… with nothing reported. Each attempt now has a time limit and reports the mail server's own error, and the feedback-loop form shows a clear message instead of leaving its button stuck when the check cannot complete.
- Bounce and complaint processing stalled for every account queued behind the dead mailbox. Each connection now has its own time limit, and the reason a mailbox could not be reached is recorded against it.
Campaign Sending
Clients in an option-less client group could not send
A client group is saved with a set of optional behaviours ticked, and every one of those checkboxes is optional — so a group can legitimately be saved with none of them selected. When that happened, the sending run read the group, found nothing usable where it expected a list of options, and stopped before a single recipient was processed.
The effect was that every campaign owned by a member of that group silently failed to go out, with nothing in the interface to explain why. Sending now handles an option-less group as what it is — a group with no special behaviours — and proceeds normally.
Segment Exports
Statistics-based exports complete in a fraction of the time
Exporting a statistics-based segment previously paired every contact with each send and each open recorded against it before a single line was written. On an account with a large tracking history, one batch of a thousand contacts could run for days.
Contacts are now exported one row each, and the details shown alongside them — location, browser, operating system, campaign, subject line and clicked link — are looked up in efficient batches.
Exports can no longer report success with nothing to download
Three problems compounded each other on long-running exports:
- A long-running export was mistaken for an abandoned one, so another copy was started alongside it every half hour — until the server's processors were fully occupied by identical work.
- The exported-file retention routine could delete an export that was still being written, leaving the segment marked complete with no file behind it.
- A failed run left the previous export's file name in place, so a Download button appeared for a file that was usually already gone.
Now exports in progress are protected from retention, exactly one export runs at a time, and an interrupted export resumes where it stopped instead of starting over.
Unsubscribe on Cloaked Tracking Domains
Recipients who clicked the unsubscribe link on a tracking domain using the cloaking file were shown the application's page-not-found screen instead of the unsubscribe confirmation, and the tracking pixel those domains serve had gone missing as well.
Both are served correctly again, and no change is needed to the cloaking file already installed on your server — the addresses it relies on answer properly once more.
Fewer Server Errors
Pages reading global settings no longer fail
Several places were still looking for the application's global settings where they used to be kept rather than where they live now, which produced a server error on affected installations:
- Saved sending criteria on the broadcast schedule step
- The license pages
- The sending-node group tree
The login screen was doing the same thing on every page load, quietly, which also stopped the login page from picking up your branding.
Gmail authorization codes
Validating a Gmail authorization code could fail with "Malformed auth code" for reasons that had nothing to do with the code being wrong:
- A code pasted with the mouse kept whatever spaces or line breaks came with it, because only typed input was being cleaned up.
- A code copied out of the browser's address bar arrived with its characters still encoded.
Both are cleaned up before the code is sent on. Separately, a code that cannot be checked because Google could not be reached now says exactly that, instead of reporting a missing permission and sending you looking for a problem that was not there.
Session device details
The device tooltips on the Security page's active-sessions list always read Windows 10.0 and Google Chrome 79 regardless of the device actually signed in. Each session row now shows its real operating system and browser.
Web Form Abuse
Automated scanners had found the public web form submission address and were walking it with junk values in place of the form identifier. Nothing was exposed — the lookup never treated those values as anything but text — but each attempt wrote an entry into the Issues list and a line into the application log, which on a busy installation buried everything else.
A submission naming a web form that does not exist is now only reported while it still looks genuine, and a source sending a stream of impossible ones is turned away.
A submission naming a form that exists is never refused, however many invalid submissions have arrived from the same address. This matters for sites that post sign-ups from their own backend, where every submission shares one address.
Updating
The Update page says when the update server cannot be reached
If the update server was unreachable, the Update page showed whatever came back in place of the latest available version. When something else answered in its place — a redirect, a captive portal, or a plain error page — that response was presented as though it were a version number.
The page now states plainly that the update server could not be reached, using the same alert it already shows for a failed pre-update check, and the update button stays disabled until a genuine version is known.
On a server with no outbound access, Tools → Update now tells you the update server is unreachable and suggests what to check — the server's internet connection, its firewall, and any DNS or hosts-file overrides — instead of displaying nonsense as the newest version.
Breaking Changes
None. 7.2 is backward-compatible with 7.1 — no configuration changes and no manual steps beyond the automatic background migration.
The one thing worth acting on is not breaking, but it is worth doing: tracking domains that use the self-hosted cloaking file need the updated file before the new click-link protection applies to them. Sending Domains flags the domains that still need it.
Migration Notes
A short background migration runs automatically during the update. It adds the bookkeeping the new mailbox failure tolerance needs — how many consecutive runs a bounce address or feedback loop has failed, when the degraded streak started, and the last error reported — and it seeds the two tolerance settings under Application Settings → Performance with their defaults. Existing values are never overwritten, and no data is removed.
Everything runs in the background during the update, with nothing to run by hand.
Getting Help
If anything looks off after the update, please contact your Mumara team member with the exact error message (or a screenshot), which updater channel you used (Stable, Beta, or Specific Version), and your previous Mumara version and current PHP version. You can also visit our Support Portal or review the Troubleshooting guide.
Last updated on September 18, 2026