hn/typo3-mail-sender

TYPO3 extension for configuring and validating email sender addresses with DNS and deliverability checks

Installs: 32

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:typo3-cms-extension

pkg:composer/hn/typo3-mail-sender

dev-main 2025-12-03 10:51 UTC

This package is auto-updated.

Last update: 2025-12-03 10:51:58 UTC


README

๐Ÿšง Work in Progress

Configure and validate email sender addresses with DNS and deliverability checks for TYPO3 CMS.

About This Project

This extension is proudly funded by the TYPO3 Community Budget for Q4 2025. It was selected by TYPO3 members as one of four ideas to receive community funding, reflecting the strong need for better email sender configuration and validation in TYPO3.

Learn more: TYPO3 Community Budget Q4 2025 Winners

Current Features

Phase 1: Foundation โœ…

  • โœ… Manage email sender addresses in the TYPO3 backend
  • โœ… Store sender email addresses and display names
  • โœ… Database structure for validation tracking
  • โœ… System record configuration (root-level records)
  • โœ… Integration in TYPO3's System Information/Status module
  • โœ… Custom TCA renderType for validation status display

Phase 2: Core Validation ๐Ÿ”„ (In Progress)

  • โœ… Email syntax validation
  • โœ… MX record verification
  • โœ… SPF record validation (checks SMTP transport configuration)
  • โœ… DMARC record analysis with recommendations
  • โœ… Email existence verification (SMTP check)
  • โœ… Validation result caching and display
  • โœ… CLI command for validation (mail:sender:validate)
  • ๐Ÿ”„ Tweaking email existence check failure handling

Phase 3: Integration & Adoption ๐Ÿ”„ (In Progress)

  • โœ… Integration with ext:form (validated sender dropdown)
  • ๐Ÿ“‹ TCA Extra Field API for third-party extensions
  • ๐Ÿ“‹ Documentation for extension developers

Planned Features

  • ๐Ÿ“‹ Phase 4: Import from existing configurations

Roadmap

Phase 1: Foundation โœ… Complete

Goal: Basic extension structure and system integration

Features:

  • Extension scaffolding (composer.json, ext_emconf.php, TCA)
  • Database schema for sender address configuration
  • TCA configuration for backend management
  • Basic CRUD operations with functional tests
  • System record design (root-level, no translation)
  • Integration in TYPO3's System Information/Status module
  • Custom TCA renderType for validation status display

Deliverable: Functional extension with sender address management in TYPO3 backend

Phase 2: Core Validation ๐Ÿ”„ In Progress

Goal: Implement email validation - the core functionality

Features:

  • โœ… Email syntax validation
  • โœ… SPF record validation using dns_get_record()
  • โœ… MX record verification
  • โœ… DMARC record analysis with recommendations
  • โœ… Email existence checks via SMTP verification
  • โœ… Validation result caching for performance
  • โœ… Status reporting and visual display
  • โœ… CLI command for validation
  • ๐Ÿ”„ Refinement of email existence check error handling

Deliverable: Complete email validation system with DNS checks and status reporting

Phase 3: Integration & Adoption ๐Ÿ”„ In Progress

Goal: Wide adoption through easy integration

Features:

  • โœ… Integration with ext:form (replace freetext sender with validated dropdown)
  • ๐Ÿ“‹ TCA Extra Field API for third-party extensions (similar to enableRichtext)
  • ๐Ÿ“‹ Identify and integrate with popular TYPO3 extensions
  • ๐Ÿ“‹ Comprehensive documentation for extension developers
  • ๐Ÿ“‹ Integration testing and examples

Deliverable: API and integrations enabling easy adoption by extension developers

Phase 4: Polish & Import ๐Ÿ“‹ Planned

Goal: Production-ready release with import functionality Target: December 2025

Features:

  • Import functionality:
    • From $GLOBALS['TYPO3_CONF_VARS']['MAIL']
    • From TypoScript configurations
    • From other extension databases
  • Reference tracking (show where sender addresses are used)
  • Final documentation and changelog
  • Testing, bug fixes, and polish
  • TER (TYPO3 Extension Repository) release preparation
  • TYPO3.org news article

Deliverable: Release-ready extension with full documentation

Requirements

  • TYPO3 13.4 or later
  • PHP 8.1 or later

Installation

Install via Composer:

composer require hn/typo3-mail-sender

Usage

After installation, mail sender addresses can be managed in the TYPO3 backend:

  1. Navigate to the List module
  2. Select the root page (ID: 0)
  3. Create new "Mail Sender Address" records

Record Fields

Each sender address record contains:

  • Sender Email Address: The email address to be used as sender
  • Sender Name: Display name for the sender
  • Hidden: Toggle to temporarily disable a sender address

Validation Fields

The following fields are populated automatically by validation services:

  • Validation Status: Current validation state (pending, valid, invalid)
  • Last Validation Check: Timestamp of the last validation
  • Validation Result: Detailed JSON validation results

Development

Running Tests

composer test

The extension uses the TYPO3 testing framework with SQLite. Tests are automatically bootstrapped via the Build/setup-typo3.sh script.

Test Coverage

Current functional tests cover:

  • โœ… Basic CRUD operations
  • โœ… Record soft-delete
  • โœ… Record hiding/visibility
  • โœ… TCA configuration
  • โœ… Database schema

Contributing

We welcome contributions from the TYPO3 community! As a community-funded project, your input helps shape this extension.

Ways to contribute:

  • ๐Ÿ’ก Share feedback and feature suggestions via GitHub Issues
  • ๐Ÿ› Report bugs and issues
  • ๐Ÿ“– Improve documentation
  • ๐Ÿงช Help with testing
  • ๐Ÿ’ป Submit pull requests

Please check the GitHub repository for open issues and contribution guidelines.

Project Status

Current Phase: Phase 2 (Core Validation) & Phase 3 (Integration) Next Milestone: Phase 4 (Polish & Import) Target Release: December 2025

License

GPL-2.0-or-later

Authors

Acknowledgments

Special thanks to the TYPO3 community for selecting this project for funding and supporting open-source development in the TYPO3 ecosystem.