viewmend/typo3-auto-replies

ViewMend Auto-replies - Send automatic email replies after TYPO3 Core Form submissions with visual templates, rules, retries and delivery history.

Maintainers

Package info

github.com/phpner/viewmend-typo3-auto-replies

Homepage

Type:typo3-cms-extension

pkg:composer/viewmend/typo3-auto-replies

Transparency log

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

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

This package is auto-updated.

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


README

viewmend/typo3-auto-replies is a standalone ViewMend product. It stores an accepted TYPO3 Core Form submission locally, selects the first matching rule, captures an immutable message snapshot, and immediately attempts the reply through the configured TYPO3 Mailer. A durable local queue preserves delayed and recoverable deliveries. It runs independently of other ViewMend products.

The shared viewmend/typo3-core dependency supplies the top-level ViewMend Dashboard and the small product registration contract. Auto-replies contributes permission-scoped rule and delivery counters through the optional Dashboard status contract; Core remains independent of the Auto-replies repositories and schema. The framework-agnostic viewmend/sdk client provides the optional signed ViewMend Cloud scheduling connection.

Supported platform

  • PHP 8.3–8.5
  • TYPO3 13.4 LTS and TYPO3 14.3
  • TYPO3 Core Form
  • MySQL/MariaDB, PostgreSQL, or SQLite through Doctrine DBAL

Powermail is intentionally not a hidden dependency. A compatible optional adapter can be added later without coupling Auto-replies to another product. Form-source adapters implement the typed FormCatalogProviderInterface, map their runtime values into an immutable NormalizedSubmission, and call the single SubmissionAcceptanceService. Rules always bind to one existing TYPO3 site and one exact form persistence identifier; there is no global or wildcard matching mode.

Install

composer require viewmend/typo3-auto-replies
vendor/bin/typo3 extension:setup
vendor/bin/typo3 viewmend:auto-replies:doctor

Add the ViewMend Auto-replies finisher after successful validation and before EmailToReceiver, EmailToSender, Redirect, and DeleteUploads. The submission and queue decision are committed in one database transaction. After that commit, an immediate rule is attempted automatically. Mailer failure never rejects or removes the accepted form submission; it is recorded in Delivery history and scheduled for recovery.

The Doctor command fails when the finisher is unavailable in the TYPO3 Form editor, when an enabled rule points to a form without it, or when email, redirect, or upload deletion runs before it.

No command, Scheduler task, or cron configuration is required for ordinary immediate replies. Due recovery jobs are also processed in small bounded passes by normal frontend traffic. Delivery history provides Send due now for an administrator who wants to start a pass immediately.

The backend Settings tab stores a default send time for each TYPO3 website. Rules use that website default unless an explicit timing override is selected in Studio. Changing the default affects only future matching submissions; queued messages keep the immutable delivery time captured when they were accepted.

Settings can also connect Automatic delayed delivery. Create an automatic delivery connection for the public HTTPS domain in ViewMend Integrations, paste its one-time token, and choose a simple check frequency. The extension registers its fixed callback path through viewmend/sdk; administrators never enter a cron expression, callback host, method, header, or request body. ViewMend verifies the callback and then runs due delayed replies and retries even when the website has no traffic. Immediate replies stay local and continue to work when ViewMend is not connected or temporarily unavailable.

The connection token is encrypted at rest with a key derived from TYPO3 SYS.encryptionKey and is never returned to the browser after saving. Callback signatures are checked against the exact request body. Completed ViewMend run IDs are stored for 30 days, and a repeated run is acknowledged without repeating completed queue work.

Advanced self-hosted installations can still run the same bounded worker through an existing process manager:

vendor/bin/typo3 viewmend:auto-replies:work --limit=25

Privacy cleanup also runs in a bounded pass from normal frontend traffic, at most once every six hours. The maintenance command remains available for installations that prefer to run the same cleanup centrally:

vendor/bin/typo3 viewmend:auto-replies:retention --limit=250

Settings also reports the active TYPO3 mail transport and system sender. Webhook, Slack, Microsoft Teams, and Telegram connections remain roadmap information and are not active integrations in this release.

Delivery semantics

Accepted by TYPO3 mailer means the configured TYPO3/Symfony Mailer accepted the message, including acceptance into a configured memory spool. It does not prove delivery to the recipient. Ambiguous SMTP handoff is recorded as Unknown and is never retried automatically. Manual retry is bounded, rate limited, and unavailable after payload redaction or accepted transport evidence.

Backend permissions

Administrators have full access. Non-admin users require User TSconfig and remain constrained to accessible site roots:

options.viewmend.autoReplies {
  view = 1
  manage = 1
  retry = 1
}

Message HTML is allowlisted, merge values are escaped, sensitive/upload fields are excluded from conditions and tags, and terminal snapshots become eligible for redaction after 24 hours on the next retention run.

Studio includes a built-in gallery of copy-on-use message templates. Each template has a complete email preview; choosing one copies its subject, body, and presentation frame into the rule without creating a runtime dependency. The message can then be edited visually or through the Code toolbar action, which opens a dedicated message-HTML dialog and applies the result back to the visual editor. The toolbar includes headings, emphasis, alignment, lists, links, tables, colors, special characters, and formatting cleanup. Custom HTML supports email tables, HTTPS images, inline email CSS, and merge tags. Scripts, embeds, forms, event handlers, unsafe URLs, and unsupported CSS are removed by the server sanitizer before the message is saved or queued.

Repository boundary

This repository owns all Auto-replies code, schema, UI, form integration, queueing, privacy behavior, tests, and release artifacts. It requires Core but never another ViewMend product. Future products follow the same contract and appear beside Auto-replies in the Dashboard.

Uninstall and stored data

Removing the Composer package does not silently delete submissions, immutable jobs, delivery evidence, or encrypted connection settings. Before uninstalling, pause automatic delivery, disconnect the ViewMend connection, export anything that must be retained, and run the retention command. Database tables can then be removed deliberately through the TYPO3 schema workflow or by an administrator after a verified backup.

Support and security

Use GitHub Issues for reproducible bug reports and feature requests. Do not disclose security vulnerabilities publicly; report them to support@viewmend.com with the affected version and reproduction details.