PHPackages                             silverstripers/custom-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. silverstripers/custom-emails

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

silverstripers/custom-emails
============================

Send fully configurable custom emails from Silverstripe

13721PHP

Since Dec 5Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/HelloBetterLTD/custom-emails)[ Packagist](https://packagist.org/packages/silverstripers/custom-emails)[ RSS](/packages/silverstripers-custom-emails/feed)WikiDiscussions master Synced 5d ago

READMEChangelogDependenciesVersions (3)Used By (0)

Custom Editable Emails for Silverstripe
=======================================

[](#custom-editable-emails-for-silverstripe)

### Installation

[](#installation)

Use composer to install the module.

`composer require silverstripers/custom-emails`

### Configuration

[](#configuration)

Define your emails first in YAML files and run a dev build. The emails objects will be created in the CMS (Siteconfig). You can have multiple emails defined with different identifiers.

Once you go in the CMS and configure them you can start sending emails.

```
---
name: notifications-config
---
SilverStripers\CustomEmails\Dev\Injector:
  definitions:
    EMAIL_IDENTIFIER:
      name: 'Title of the email'
      dynamic: true # for emails which doesnt need a to address
      template: '' # Silverstripe template file to use when rendering emails.
      arguments: # merge tags
        - Name
        - Email

```

\###Sending emails

To send an email you can use the Processor classs.

```
use SilverStripers\CustomEmails\Model\NotificationEmail;

$processor = NotificationEmail::get_processor(
    'EMAIL_IDENTIFIER',
    'to@email.com',
    'from@email.com',
    [
        'Name' => 'Name',
        'Email' => 'test@test.com'
    ]
);
$processor->setAttachments([
    'file_name' => $content
]);
$processor->send();

```

The functions above can be used as this.

```
use SilverStripers\CustomEmails\Model\NotificationEmail;

NotificationEmail::get_processor('EMAIL_IDENTIFIER')
    ->setTo('to@email.com')
    ->setFrom('from@email.com')
    ->setData([]) // data as you specify on your merge tags
    ->setAttachments([
        'file_name' => $content
    ])->send();

```

###  Health Score

25

↑

LowBetter than 37% of packages

Maintenance49

Moderate activity, may be stable

Popularity15

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity23

Early-stage or recently created project

 Bus Factor1

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

### Community

Maintainers

![](https://www.gravatar.com/avatar/6a6fa4ab2a74fee1ac574bf15dd3ce1f38f31fee60c186b4b24ee8d7e3090b52?d=identicon)[silverstripers](/maintainers/silverstripers)

---

Top Contributors

[![fonsekaean](https://avatars.githubusercontent.com/u/143939?v=4)](https://github.com/fonsekaean "fonsekaean (26 commits)")[![ss-koshala](https://avatars.githubusercontent.com/u/65384702?v=4)](https://github.com/ss-koshala "ss-koshala (1 commits)")

### Embed Badge

![Health badge](/badges/silverstripers-custom-emails/health.svg)

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

###  Alternatives

[tijsverkoyen/css-to-inline-styles

CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.

5.8k505.3M227](/packages/tijsverkoyen-css-to-inline-styles)[minishlink/web-push

Web Push library for PHP

1.9k12.0M53](/packages/minishlink-web-push)[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2587.7M12](/packages/laravel-notification-channels-twilio)[spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

4422.3M16](/packages/spatie-url-signer)[mattketmo/email-checker

Throwaway email detection library

2742.0M5](/packages/mattketmo-email-checker)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)

PHPackages © 2026

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