PHPackages                             codeminds/mailmanager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. codeminds/mailmanager

ArchivedTypo3-cms-extension[Mail &amp; Notifications](/categories/mail)

codeminds/mailmanager
=====================

Manage all outgoing mails in one central place. Configure all mails in one yaml file and disable or reroute all mails for debugging with one switch. Output the mail contents to files for more quick debugging.

1.0.0(6y ago)08GPL-2.0-or-laterPHPCI failing

Since Dec 6Pushed 6y ago1 watchersCompare

[ Source](https://github.com/martinlipp/mailmanager)[ Packagist](https://packagist.org/packages/codeminds/mailmanager)[ RSS](/packages/codeminds-mailmanager/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (1)Versions (1)Used By (0)

TYPO3 Extension `mailmanager`
=============================

[](#typo3-extension-mailmanager)

1. Features
-----------

[](#1-features)

- Manage all outgoing mails in one central place by configuring them in one single yaml configuration file.
- Disable or reroute all mails for debugging with one switch. Therefore you can already define the correct live email addresses during development and have not to worry about forgetting to switch them back when going live.
- Output the mail contents to accessible html files for quick debugging without having to spam your inbox.

2. Usage
--------

[](#2-usage)

### 1) Installation

[](#1-installation)

Install the extension using Composer: `composer require codeminds/mailmanager`.

### 2) Minimal setup

[](#2-minimal-setup)

1. Create a yaml file for your mail configuration (for example inside your site package extension in Configuration/Yaml/Mails.yaml)
2. Define the location of your yaml file via TypoScript: `plugin.tx_mailmanager.settings.configurationFilePath = EXT:your_site_package/Configuration/Yaml/Mails.yaml`
3. Set up your first mail configuration in your yaml file (`EXT:your_site_package/Configuration/Yaml/Mails.yaml`):

```
configurations:
  -
    identifier: 'MyIdentifier'
    isActive: true
    senderEmailAddress: 'sender@company.com'
    senderName: 'My sender'
    recipients:
      -
        emailAddress: 'recipient@company.com'
        name: 'My recipient'
    subject: 'My subject'
    templatePathAndFileName: 'EXT:your_site_package/Resources/Private/Templates/Mails/YourIdentifier.html'
    partialRootPaths: []
    layoutRootPaths: []
debug:
  disableDelivery: false
  enableRerouting: false
  reroutingEmailAddress: 'debug@company.com'
  reroutingName: 'Debug'
  enableDebugOutputToFiles: false

```

4. Define your template (`EXT:your_site_package/Resources/Private/Templates/Mails/YourIdentifier.html`):

```
Dear customer,
this is a hello {variable} example mail
Cheers

```

5. Use the provided MailService to send your mails:

```
use TYPO3\CMS\Extbase\Annotation\Inject;

/**
 * @Inject
 * @var Codeminds\MailManager\Service\MailService
 */
protected $mailService = null;

.
.
.

$variables = array('variable' => 'world');
$this->mailService->sendMail('MyIdentifier', $variables);

```

### 3) Additional setup (optional)

[](#3-additional-setup-optional)

#### a) Use variables in configuration

[](#a-use-variables-in-configuration)

You can use variables in your yaml configuration to e.g. set the recipient dynamically. Refer to the variable by using curly brackets: `{variableName}`. It is also possible to refer to nested variables: `{variable.nested.variableName}`. Example:

```
configurations:
  -
    identifier: 'MyIdentifier'
    isActive: true
    senderEmailAddress: 'sender@company.com'
    senderName: 'My sender'
    recipients:
      -
        emailAddress: '{variableName}'
.
.
.

```

#### b) Use with TYPO3 form

[](#b-use-with-typo3-form)

1. Include the static TypoScript of the extension.
2. You can now add the two new finishers in the form module: Email to submitter (via MailManager) and Email to you (via MailManager)
3. In the finisher you have to define the identifier of your corresponding mail configuration
4. Optionaly you can set the receiver or sender to a dynamically set value coming from the form (the mail configuration has to be defined accordingly by setting `{emailAddress}` or `{name}`)
5. Define the templates and partials of the form extension (or use your own). In your yaml mail configuration:

```
    templatePathAndFileName: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Email/Html.html'
    partialRootPaths: ['EXT:form/Resources/Private/Frontend/Partials']

```

#### c) Debugging

[](#c-debugging)

Use the self explanatory options under `debug` in your yaml file. If `enableDebugOutputToFiles` is on, the files will be put to /typo3temp/mails/MyIdentifier.html for quick access via your browser.

#### d) Full configuration and attachments

[](#d-full-configuration-and-attachments)

You can also configure cc, bcc, reply-to addresses and attachments. See this configuration with all possible options used:

```
configurations:
  -
    identifier: 'MyIdentifier'
    isActive: true
    senderEmailAddress: 'sender@company.com'
    senderName: 'My sender'
    recipients:
      -
        emailAddress: 'recipient@company.com'
        name: 'My recipient'
    cc:
      -
        emailAddress: 'cc@company.com'
        name: 'My cc recipient'
    bcc:
      -
        emailAddress: 'bcc@company.com'
        name: 'My bcc recipient'
    replyTo:
      -
        emailAddress: 'replyto@company.com'
        name: 'My replyto name'
    subject: 'My subject'
    attachments: ['EXT:your_site_package/Resources/Private/Pds/attachment.pdf']
    templatePathAndFileName: 'EXT:your_site_package/Resources/Private/Templates/Mails/YourIdentifier.html'
    partialRootPaths: []
    layoutRootPaths: []
debug:
  disableDelivery: false
  enableRerouting: false
  reroutingEmailAddress: 'debug@company.com'
  reroutingName: 'Debug'
  enableDebugOutputToFiles: false

```

Attach files programmatically:

```
$pathAttachments[] = 'EXT:your_site_package/Resources/Private/Pds/attachment.pdf';
$file = $myFileReference->getOriginalResource();
$swiftAttachments[] = Swift_Attachment::newInstance($file->getContents(), $file->getName(), $file->getMimeType());
$this->mailService->sendMail('MyIdentifier', $variables, $pathAttachments, $swiftAttachments);

```

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2401d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7592369?v=4)[martinlipp](/maintainers/martinlipp)[@martinlipp](https://github.com/martinlipp)

---

Top Contributors

[![martinlipp](https://avatars.githubusercontent.com/u/7592369?v=4)](https://github.com/martinlipp "martinlipp (2 commits)")

### Embed Badge

![Health badge](/badges/codeminds-mailmanager/health.svg)

```
[![Health](https://phpackages.com/badges/codeminds-mailmanager/health.svg)](https://phpackages.com/packages/codeminds-mailmanager)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40529.5k](/packages/wazum-sluggi)[b13/assetcollector

Asset collector - Add CSS and SVG files and strings as inline style tag/inline svg to the html code.

10125.6k](/packages/b13-assetcollector)[mediaessenz/mail

Powerful newsletter system for TYPO3

1111.2k3](/packages/mediaessenz-mail)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
