Search by

konradmichalik / typo3-letterbox

konradmichalik

Letterbox - Catches TYPO3 mails in an mbox file and shows them in the backend, for local, stage and test systems.

Package info

github.com/konradmichalik/typo3-letterbox

Type:typo3-cms-extension

pkg:composer/konradmichalik/typo3-letterbox

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.1.0 2026-10-30 10:26 UTC

This package is auto-updated.

Last update: 2026-10-30 10:28:04 UTC


README

Extension icon

TYPO3 extension typo3_letterbox

Latest Stable Version Supported TYPO3 versions Supported PHP Versions Coverage CGL Tests License

Catches TYPO3 mails in an mbox file and shows them in the backend, for local, stage and test systems.

Note

Test systems must not send real mails to real people, but testers need to see what a mail looks like. Letterbox catches outgoing mails in a local mbox file and shows them in the backend, so nothing leaves the system.

Letterbox backend module with mail list and HTML preview

✨ Features

  • Mail transport that catches every mail in a local mbox file and delivers none
  • Backend module under System › Letterbox with search, filters, per-user unread state and a sandboxed HTML preview
  • Checks per mail, such as images without alt, http links and tracking pixels
  • Sendmail intake for mails that bypass the TYPO3 mailer, such as PHP mail()
  • External access for test systems: a token-protected JSON API and a read-only tester inbox
  • Retention and console commands to keep the mbox file small

🔥 Installation

Requirements

  • TYPO3 13.4 LTS or 14.3 LTS
  • PHP 8.2 to 8.5

Composer

Packagist Packagist Downloads

composer require konradmichalik/typo3-letterbox

TER

TER version TER downloads

Download the zip file from TYPO3 extension repository (TER).

🚀 Quick start

Turn on "Catch mails with Letterbox" (enable) in Admin Tools › Settings › Extension Configuration › typo3_letterbox (System › Settings in TYPO3 14) and flush the caches. Letterbox then takes over the mail transport, an existing MAIL/dsn included, and writes caught mails to var/letterbox/mails.mbox. Set LETTERBOX_ENABLE=1 or 0 to switch it per system, see configuration.

Alternatively, set the transport in config/system/additional.php:

$GLOBALS['TYPO3_CONF_VARS']['MAIL']['dsn'] = '';
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport'] = \KonradMichalik\Typo3Letterbox\Mail\LetterboxTransport::class;
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_mbox_file'] = '/var/www/mbox/mails.mbox';

Warning

If MAIL/dsn is not empty, TYPO3 core ignores MAIL/transport and sends live through the DSN. Letterbox is bypassed. Keep dsn empty. The switch clears it for you.

Then open System › Letterbox as an administrator. Letterbox is either on and catches every mail, or off and changes nothing.

📚 Documentation

Page What's inside
Configuration The switch, transport settings, caught mails and extension settings
Backend module Search, filters, tabs, checks, preview, navigation, delete and clear
Operations Retention, console commands, sendmail intake, toolbar item, Reports status and dashboard widget
External access Activation, the shared token, guard reasons and the tester inbox
JSON API Endpoints, authentication, response shape, Playwright example
Test mails Console command letterbox:testmails:send

🧑‍💻 Contributing

Please have a look at CONTRIBUTING.md.

💎 Credits

Letterbox is forked from t3/mbox by Armin Vieweg. The mbox parser approach comes from armin/mbox-parser.

The illustration for the empty and unselected states is "Empty mailbox" by Katerina Limpitsouni from unDraw, recoloured. It is used under the unDraw license and is not covered by the GPL of this extension.

⭐ License

This project is licensed under GNU General Public License 2.0 (or later).