viewmend/typo3-mailings

ViewMend Mailings - Send targeted TYPO3 email mailings to frontend users and groups with scheduling, hourly limits and delivery history.

Maintainers

Package info

github.com/phpner/viewmend-typo3-mailings

Homepage

Type:typo3-cms-extension

pkg:composer/viewmend/typo3-mailings

Transparency log

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.2 2026-08-21 18:32 UTC

This package is auto-updated.

Last update: 2026-08-21 18:35:50 UTC


README

viewmend/typo3-mailings is a standalone TYPO3 product for sending targeted email mailings to frontend users. Administrators compose the message, select active users or frontend user groups, choose a start time and hourly limit, and then freeze the audience into a durable local delivery queue.

The extension uses the configured TYPO3 Mailer. It does not provide another SMTP implementation and it does not depend on Auto-replies, InboxMend, or Site Tracker. viewmend/typo3-core supplies only the shared ViewMend Dashboard and product registration contract. viewmend/sdk supplies the optional signed ViewMend automatic-delivery connection.

Supported platform

  • PHP 8.3–8.5
  • TYPO3 13.4 LTS and TYPO3 14.3
  • MySQL/MariaDB, PostgreSQL, or SQLite through Doctrine DBAL
  • TYPO3 frontend users and frontend user groups

Install

composer require viewmend/typo3-mailings
vendor/bin/typo3 extension:setup

Open ViewMend → Mailings. Creating a mailing does not send anything. The message and selected audience remain editable until Queue mailing is used. Queueing creates one immutable local recipient job per unique normalized email address. Disabled users, expired users, deleted users, and invalid email addresses are excluded.

Automatic delivery without server cron

The Settings tab can connect ViewMend automatic delivery with a one-time connection token. The extension registers its fixed signed callback through viewmend/sdk; the administrator chooses only how often the queue should be checked. No system cron, TYPO3 Scheduler task, callback URL, request body, or signature header needs to be configured manually.

Connection tokens are encrypted at rest with a key derived from TYPO3 SYS.encryptionKey and are not returned to the browser after saving. Signed callback bodies are verified before work starts. Repeated run IDs are handled idempotently and do not repeat completed queue work.

Delivery history also provides Run due delivery for an administrator who wants to start a bounded pass immediately. Existing process managers can call the same worker without changing delivery semantics:

vendor/bin/typo3 viewmend:mailings:work --limit=50

Delivery and rate semantics

The hourly limit is enforced by a database-backed counter shared by manual, CLI, and ViewMend-triggered workers. Multiple workers cannot independently consume the full limit. A recipient snapshot and message content hash are verified immediately before each attempt. A processing lease that expires after sending started becomes Unknown; it is not silently sent again.

Accepted by transport means the configured TYPO3/Symfony Mailer accepted the message. It does not prove that the recipient inbox received it. Recoverable transport errors use bounded retry with backoff. Permanent or exhausted errors remain visible in Delivery history and can be retried manually.

Recipient data retention

The Settings tab controls how long completed recipient details are kept; the default is 90 days. Maintenance removes names, addresses, immutable recipient snapshots, delivery rows, expired rate windows, and completed callback-run records while preserving aggregate mailing totals. Every queue pass performs a bounded maintenance run. Installations with an existing maintenance process can also run it explicitly:

vendor/bin/typo3 viewmend:mailings:retention --limit=250

Message safety

The visual editor supports a controlled email-oriented HTML subset, HTTPS images, inline email styles, and the merge fields recipient.name, recipient.email, and mailing.title. Scripts, forms, embeds, event handlers, unsafe URLs, unsupported CSS, comments, and unknown merge fields are removed. Merge values are escaped before they enter HTML.

Only TYPO3 administrators can manage mailings in version 1.0.0. Sender values start with the TYPO3 mail configuration and can be changed per mailing before it is queued.

Repository boundary

This repository owns the Mailings schema, audience selection, editor, queue, rate limiting, delivery history, ViewMend callback, tests, and release artifacts. Other ViewMend products have separate repositories and release cycles.

Uninstall and stored data

Removing the Composer package does not silently delete mailing content, recipient history, or encrypted automatic-delivery settings. Pause active mailings, disconnect automatic delivery, export anything that must be retained, and run the retention command before uninstalling. Database tables can then be removed deliberately through the TYPO3 schema workflow after a verified backup.

Support and security

Use GitHub Issues for reproducible bug reports and feature requests. Report suspected security vulnerabilities privately to support@viewmend.com.