PHPackages                             elliotsawyer/managed-emails - 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. elliotsawyer/managed-emails

ActiveSilverstripe-vendormodule[Mail &amp; Notifications](/categories/mail)

elliotsawyer/managed-emails
===========================

Centrally manage emails used through a SilverStripe site

1.0.0(6y ago)0453BSD-4PHP

Since Oct 30Pushed 3y ago1 watchersCompare

[ Source](https://github.com/elliot-sawyer/managed-emails)[ Packagist](https://packagist.org/packages/elliotsawyer/managed-emails)[ Docs](http://silverstripe.org)[ RSS](/packages/elliotsawyer-managed-emails/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (3)Used By (0)

Managed Emails
==============

[](#managed-emails)

Do you have a bunch of emails to send out to your users whenever they do some specific thing that needs their attention? Centrally manage them in the CMS, and refer to them in your codebase using a lookup label field. Content-manage your subject, message body, from address, and CC/BCC/ReplyTo addresses, with support for variables provided by a DataObject. Supports direct sending, or queuedjobs sending if it's available.

This is a ModelAdmin for centrally managing emails within the CMS:

- Specify a from address
- Specify a subject
- Compose an email body
- Add additional recipients, in addition to user supplied ones
- Queue an email to be sent, or configure it to send immediately

Installation
------------

[](#installation)

1. add the repository to your composer.json. This is a private repo, so composer will not find it on packagist
2. `composer require elliotsawyer/managed-emails`
3. Run `vendor/bin/sake dev/build flush=`

Configuration
-------------

[](#configuration)

There are two fields that can be configured.

```
ElliotSawyer\ManagedEmails\ManagedEmail:
  #default "From" address
  default_from_address: 'hello@sawyer.nz'
  #WYSIWYG field defaults to , so can never be empty
  minimum_body_length: 10
```

Usage
-----

[](#usage)

Define a new Managed Email in the "Email management" admin area:

1. Set a label: this is the identifier you'll "look up" within your code
2. Configure any other recipients: To, CC, BCC, and Reply-To addresses
3. Set a From address, Subject, and Message body
4. You can make references to specific variables in your message body, and pass them into into the message body from your code.
5. If you have Queued Jobs installed, your message will be queued for sending. If not, it will send immediately

```
        /**
         * $messageBody = 'Hi {$Member.Email}, this is from {$FromPerson} located at {$Address}.'
         * **/
        $email = ManagedEmail::get()->find('Label', 'EXAMPLE_MESSAGE');
        if ($email && $email->ID) {
            //send a message to an email address, with template variables defined
            $email->send('someone@example.com', [
                'Member' => Member::get()->first(),
                'FromPerson' =>  'Elliot Sawyer',
                'Address' => '1234 Nowhere Street'
            ]);
        }
```

Copyright
---------

[](#copyright)

© 2019 Elliot Sawyer, CryptoPay Limited. All rights reserved.

Support
-------

[](#support)

Like my work? Consider shouting me a coffee or a small donation if this module helped you solve a problem. I accept cryptocurrency at the following addresses:

- Bitcoin: 12gSxkqVNr9QMLQMMJdWemBaRRNPghmS3p
- Bitcoin Cash: 1QETPtssFRM981TGjVg74uUX8kShcA44ni
- Litecoin: LbyhaTESx3uQvwwd9So4sGSpi4tTJLKBdz

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 53.8% 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

Every ~1278 days

Total

2

Last Release

1105d ago

Major Versions

1.0.0 → 2.x-dev2023-04-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/ad627a2d8fe16725eb7c9cdde9f4e92e26bf3fbf4c5baf3b9eebca58c8168941?d=identicon)[0x0000](/maintainers/0x0000)

---

Top Contributors

[![silverstripe-elliot](https://avatars.githubusercontent.com/u/5863816?v=4)](https://github.com/silverstripe-elliot "silverstripe-elliot (7 commits)")[![elliot-sawyer](https://avatars.githubusercontent.com/u/354793?v=4)](https://github.com/elliot-sawyer "elliot-sawyer (6 commits)")

---

Tags

emailmodeladminsilverstripeemailsilverstripenznew zealand

### Embed Badge

![Health badge](/badges/elliotsawyer-managed-emails/health.svg)

```
[![Health](https://phpackages.com/badges/elliotsawyer-managed-emails/health.svg)](https://phpackages.com/packages/elliotsawyer-managed-emails)
```

###  Alternatives

[markguinn/silverstripe-email-helpers

Silverstripe extension containing SMTP mailer class and some other classes for HTML emails

3145.4k1](/packages/markguinn-silverstripe-email-helpers)[unclecheese/silverstripe-permamail

Adds database storage of emails and CMS definition of email templates.

2014.8k](/packages/unclecheese-silverstripe-permamail)[camfindlay/apes

The Automated Provision of Email Services (APES) module will allow you to set up an automated sync mechanism between the SilverStripe Member DataObject and MailChimp.

122.6k](/packages/camfindlay-apes)

PHPackages © 2026

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