Search by

Powerful newsletter system for TYPO3

Package info

gitlab.com/mediaessenz/mail

Homepage

Issues

Documentation

Type:typo3-cms-extension

pkg:composer/mediaessenz/mail

Fund package maintenance!

Patreon

Paypal

Statistics

Installs: 15 301

Dependents: 1

Suggesters: 0

Stars: 7

v4.1.0 2026-09-02 13:01 UTC

README

What does it do?

MAIL is a TYPO3 backend module for sending personalized mails to different groups of recipients.

Documentation: https://docs.typo3.org/p/mediaessenz/mail/main/en-us/

Running the tests

The unit tests live in Tests/Unit, the functional tests in Tests/Functional. Both use the TYPO3 testing framework. The development dependencies are installed into .Build (ignored by git):

composer install --ignore-platform-req=ext-imap
composer test:unit
composer test:functional

The functional tests render mail pages in a TYPO3 test instance with an SQLite database (PHP extension pdo_sqlite).

--ignore-platform-req=ext-imap is only necessary if the IMAP extension is not installed (it is not needed by the unit tests). In a DDEV project the commands can be executed in the extension directory:

ddev exec -d /var/www/html/vendor/mediaessenz/mail composer install --ignore-platform-req=ext-imap
ddev exec -d /var/www/html/vendor/mediaessenz/mail composer test:unit
ddev exec -d /var/www/html/vendor/mediaessenz/mail composer test:functional

Releasing

A release is published to the TYPO3 Extension Repository (TER) by the GitLab CI (.gitlab-ci.yml).

  1. Raise the version in ext_emconf.php and in composer.json (extra.typo3/cms.version).
  2. Add the changelog Documentation/ChangeLog/<major>-<minor>-<patch>.rst and list it in Documentation/ChangeLog/Index.rst.
  3. Commit, create an annotated tag and push it. The tag message is used as upload comment in the TER:
    git tag -a v4.2.0 -m "Improved performance of the recipient lists"
    git push origin v4.2.0
    
  4. The pipeline of the tag runs the tests and the job release-checks (version of the tag equals ext_emconf.php and composer.json, changelog exists), then ter-package builds mail_<version>.zip: the tag without the files listed in .gitattributes (e.g. Tests/, Build/) and Resources/Private/PHP/mail-dependencies.phar. The package is available as job artifact.
  5. Check the package, then start the manual job ter-publish. A version published to the TER can't be changed or deleted. After the upload the job gitlab-release creates the GitLab release of the tag.

Required setup in GitLab: the CI/CD variable TYPO3_API_TOKEN (a TER access token, see typo3/tailor, flags masked and protected) and the protected tags v*.

The package can be built locally with sh Build/ci/build-ter-package.sh v4.2.0 /tmp (needs a committed tag, overwrites Resources/Private/PHP/vendor and mail-dependencies.phar). make ter-zip builds the package of the current state instead (versioned files including uncommitted changes, without untracked files) with the version of ext_emconf.php as ../zip/mail_<version>.zip.