viewmend / typo3-inboxmend
InboxMend - Save TYPO3 Core Form submissions before email delivery, so a failed message never costs you a lead. Search, assign and follow up in TYPO3.
Package info
github.com/phpner/viewmend-typo3-inboxmend
Type:typo3-cms-extension
pkg:composer/viewmend/typo3-inboxmend
Requires
- php: >=8.3 <8.6
- typo3/cms-backend: ~13.4.0 || ~14.3.0
- typo3/cms-core: ~13.4.0 || ~14.3.0
- typo3/cms-extbase: ~13.4.0 || ~14.3.0
- typo3/cms-fluid: ~13.4.0 || ~14.3.0
- typo3/cms-form: ~13.4.0 || ~14.3.0
- viewmend/typo3-core: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.87
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5
Suggests
- typo3/cms-scheduler: Runs InboxMend workers from the TYPO3 Scheduler backend.
README
InboxMend is a local-first submission inbox for TYPO3 Core Form. It stores a validated submission before email, redirect, or upload cleanup, then gives backend teams a searchable workflow and mail evidence linked to that submission.
InboxMend is an independent ViewMend product. It has its own package, schema, permissions, assets, and release cycle. viewmend/typo3-core supplies only the shared ViewMend dashboard and product registration contract.
Requirements
- PHP 8.3–8.5
- TYPO3 13.4 LTS or 14.3
- TYPO3 Core Form
TYPO3 12 is not supported on the main branch. Powermail support belongs in a separate adapter package and is not part of the Core Form compatibility claim.
Features
- Atomic local persistence and replay-safe idempotency.
- Focused Inbox, Needs attention, and Archived queues; unread submissions stay visible as the Inbox badge.
- Workflow status, priority, assignee, follow-up date, internal notes, bulk actions, filters, search, and CSV export.
- Submission-linked Email Log and Email Health.
- Honest mail states: Accepted by transport, Failed, No email generated, and Unknown.
- Optional private attachment copies with MIME and size validation.
- Field exclusion, site-scoped backend access, configurable retention, and privacy-safe audit history.
InboxMend does not replace the TYPO3 form builder and does not provide separate SMTP settings. An Accepted mail event means that TYPO3 Mailer handed a message to the configured transport without an exception; it is not proof of delivery to the recipient.
Installation
composer require viewmend/typo3-inboxmend vendor/bin/typo3 extension:setup
Add the viewmend/inboxmend site set. Then add the InboxMend submission inbox finisher to every form that should be captured. It must run before email, redirect, and upload-deletion finishers:
finishers: - identifier: ViewMendInboxMend options: strict: true fieldMapping: name: name email: email phone: telephone message: message - identifier: EmailToReceiver - identifier: Redirect
The finisher is available in the TYPO3 Form editor, so YAML editing is not required. Strict mode prevents a form from continuing when guaranteed local persistence fails.
Verify the installation after schema setup:
vendor/bin/typo3 inboxmend:doctor
The command checks database invariants, Core Form finisher registration, and connected form definitions. It fails instead of reporting a healthy installation when form ingress is unavailable.
Background maintenance
Capturing a submission and observing its immediate TYPO3 mail do not require cron. Scheduled commands add mail reconciliation and retention:
vendor/bin/typo3 inboxmend:mail:reconcile --limit=250 vendor/bin/typo3 inboxmend:retention:run --limit=250
See Operations for recommended schedules and failure semantics.
Backend access
Module access is controlled by TYPO3 backend permissions and site web mounts. Workflow changes and CSV export are separate deny-by-default privileges for non-admin users:
options.inboxmend.workflow = 1
options.inboxmend.export = 1
Security and privacy
Sensitive field identifiers and field types are excluded before persistence. Observed mail bodies are hashed rather than stored.
Read Privacy, Architecture, and Security policy before enabling attachments or changing retention settings.
Uninstall and stored data
Removing the Composer package does not silently delete submissions, notes, mail evidence, or private attachment copies. Export any records that must be retained and run the retention command first. Database tables and remaining private files can then be removed deliberately through the TYPO3 schema and file-storage workflows after a verified backup.
Development
composer install composer quality
The CI matrix covers TYPO3 13.4 on PHP 8.3 and TYPO3 14.3 on PHP 8.5.