---
title: Changelog
url: "https://b13.com/products/mail-queue-for-typo3/changelog"
date: 2026-09-11
modified: 2026-09-25
lastUpdated: 2026-09-25
---

# Changelog

![Envelope icon with a circular arrow, indicating the action of replying to an email, set against a gradient background.](https://b13.com/fileadmin/_processed_/1/7/csm_sharing-ext-mail-queue-S_91a8e0ced6.webp)

 Changelog
===========

 TYPO3 Extension “Mail Queue”
 Version 1.7.0 (2026-09-12)

  All notable changes to `b13/mail-queue` are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

   1.7.0 — 2026-09-12
--------------------

  ###  Added

- **Added German language for backend module.** Any other language can be added, and individual labels can be overridden per installation through `$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']`.

  ###  Changed

- **`LicenseInfo` returns the license data instead of a finished sentence.** `getDisplayLabel()` is replaced by `getLicenseData()`, which returns the project's domain and name; the "Licensed for …" line is composed — and translated — where it is displayed. Relevant only if you called that method from your own code.

  ###  Fixed

- **Updated documentation.**

  ###  Documentation

- **README split into a short overview plus a `Documentation/` tree.** The README now answers "what is this, does it run here, how do I start" in about 100 lines and links onward; the nine detailed chapters (installation, how it works, backend module, archive mode, force hold, multiple transports, webhook alerting, console commands, configuration) live in `Documentation/` as the single source of truth for the published documentation.
- **`SECURITY.md` added** with the reporting route, what a reporter can expect, and an overview of the personal data this extension handles.
- **Screenshots of the backend module and the dashboard widget** added under `Documentation/Images/`, each with its alt text in a file beside it. They are recorded from the test suite rather than taken by hand, so a TYPO3 upgrade or a change to the module is followed by a regeneration instead of a screenshot session.
- **The documentation shows them.** The module list opens the backend module chapter, the two access options sit with the access levels that describe them, and the traffic light appears in its red state where the dashboard widget is introduced.
- **The alerting chapter shows the webhook notification as it arrives**—the alert and the recovery message, under the payload example.

  ###  Tests

- **A screenshot run that records the product and documentation images.** `ddev playwright test -c playwright.screenshots.config.ts` drives the backend module, the dashboard widget in each of its three states and the access options on a backend group, and writes the results to `Documentation/Images/`. It lives in its own Playwright configuration, so it never runs as part of the normal suite and cannot rewrite committed images by accident. Repeated runs produce byte-identical files — a changed file means the backend changed.

   1.6.3 — 2026-08-08
--------------------

  ###  Added

- **Small refinements** to the backend module

   1.6.2 — 2026-08-05
--------------------

  ###  Fixed

- **"Back to list" keeps the active tab and filter.** Opening a mail's detail view and returning with "Back to list" no longer drops back to the default "Open" view: the current tab (e.g. "Sent"), search, tenant filter and page now ride along in the detail URL and are restored on return. The detail view's own actions (Send now, Discard, Send to address) preserve that context too. (BEXT-652)

   1.6.1 — 2026-08-05
--------------------

  ###  Added

- **Sent tab explains missing direct deliveries.** With Archive mode off, a mail sent straight away (send-first happy path) leaves no queue row and never shows under "Sent" — only failed, queued and archived mails do. The Sent tab now carries an info hint saying so and pointing to `archiveMode`, so a successful test mail from the Environment module no longer looks lost. (BEXT-651)

   1.6.0 — 2026-08-04
--------------------

  ###  Added

- **Send to address is traceable.** A successful redirect records the corrected recipient on the queue row (`redirected_to`), shows it as a list badge and a detail field, keeps the module on the entry’s detail view, and includes that address in the list search. The original envelope recipients stay on the row for audit. Requires a database schema update (`redirected_to` on `tx_mailqueue_message`). (BEXT-648)

  ###  Fixed

- **Tenant resolution on a shared host with path-based sites.** The backend/Install Tool fallback in `SiteTenantResolver` no longer picks the first site whose base host matches (finder order was alphabetical, so a sub-path site could win over the root). It now matches host and path and chooses the longest base-path prefix of the request path — same “most specific base” rule as the TYPO3 frontend. A backend request under `/typo3` therefore resolves to that host’s root site. (BEXT-649)

  ###  Documentation

- README: list search covers Redirected to; original recipients remain after a redirect; schema upgrade note for new columns; backend tenant fallback documents host **and** path matching.
- Add this changelog file and link it from the README.

   1.5.1 — 2026-08-03
--------------------

  ###  Documentation

- Tighten README accuracy and ops details (production checklist, payload permissions, hold behaviour).

  ###  Tests

- e2e coverage for the discard-only backend role.

   1.5.0 — 2026-08-01
--------------------

  ###  Added

- Split **discard** from **manage** as independent custom module access options so a group can delete single entries without holding/resuming instance-wide delivery.

  ###  Fixed

- Enforce tenant ownership on discard (scoped editors cannot delete a foreign tenant’s row).

  ###  Documentation

- Complete README for list filters, statuses, access levels, and CLI.

   1.4.0 — 2026-08-01
--------------------

  ###  Added

- Default list tab **Open** — everything not yet delivered (`queued`, `sending`, `failed`) so actionable mail is visible first.
- Status rename: stored status `abandoned` → `failed` (module labels and filters follow).

  ###  Fixed

- Keep the tenant filter across module actions; consistent tab casing.
- Tenant filter auto-submit works under CSP (no inline handlers).

  ###  Changed

- List tab order: Open · Queued · Failed · Sent.

   1.3.5 — 2026-08-01
--------------------

  ###  Added

- Per-site module scoping via a BE-group multi-select of site identifiers (replacing a single-value approach).

  ###  Fixed

- Payload-permission unit test made environment-independent.

   1.3.4 — 2026-08-01
--------------------

  ###  Fixed

- (maintenance / test-portability packaging on top of 1.3.3.)

   1.3.3 — 2026-08-01
--------------------

  ###  Fixed

- Keep attachment payloads readable across web and CLI users by applying the instance `fileCreateMask` / `folderCreateMask` / `createGroup` to `var/mailqueue/`.

   1.3.2 — 2026-08-01
--------------------

  ###  Fixed

- Module icon rendering (black-on-black).

   1.3.1 — 2026-08-01
--------------------

  ###  Changed

- Backend module moved from System to Site Management (`system_mailqueue` → `site_mailqueue`). Re-grant the module on backend groups after upgrade; admins are unaffected.

   1.3.0 — 2026-08-01
--------------------

  ###  Added

- Tenant filter on the queue list.
- Per-tenant backend module scoping.
- Send to address — resend a queued/failed mail to a corrected recipient.
- b13 in-app footer on the backend module.

  ###  Fixed

- Resolve tenant by request host for backend / Install Tool mails (no frontend `site` attribute).

   1.2.x and earlier
-------------------

Multi-tenant transport routing, send-first spool, retry/backoff, archive mode, webhook alerting, dashboard widget, and the core backend module — see the README for behaviour. This file starts detailed notes from 1.3.0 onward.

 Changelog