PHPackages                             gmedia/sendgridfinisher - 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. gmedia/sendgridfinisher

AbandonedNeos-package[Mail &amp; Notifications](/categories/mail)

gmedia/sendgridfinisher
=======================

A Neos.Form finisher for the Sendgrid API

1.1.0(6y ago)063[3 issues](https://github.com/gmediaat/Gmedia.SendgridFinisher/issues)1GPL-3.0-or-laterPHP

Since Jul 10Pushed 3y agoCompare

[ Source](https://github.com/gmediaat/Gmedia.SendgridFinisher)[ Packagist](https://packagist.org/packages/gmedia/sendgridfinisher)[ RSS](/packages/gmedia-sendgridfinisher/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (2)Dependencies (3)Versions (5)Used By (1)

SendGrid Finisher for Neos.Form
===============================

[](#sendgrid-finisher-for-neosform)

A set of Neos.Form finishers for Sendgrid, using the [official SendGrid library](#). With this package you now can send emails via Sendgrid not only through the SMTP-API and the conventional Neos.Form email finisher, but also directly using their library. This enables you to use custom templates, additional headers, variables and many more to send pretty-looking emails directly from your Neos installation.

Installation
============

[](#installation)

```
composer require --no-update gmedia/sendgridfinisher
```

After adding the requirement to your composer.json you can update your composer.lock and install the plugin.

```
composer update
```

Usage
=====

[](#usage)

To use this finisher in your form configuration, you just need to add the following definitions to it:

```
finishers:
  -
    identifier: 'Gmedia.SendgridFinisher:EmailFinisher'
    options:
      templatePathAndFilename: 'resource://Neos.Demo/Private/Templates/ContactForm/Email.txt'
      subject: 'Contact from neos.io'
      recipients:
        - name: 'John Doe'
          email: 'john.doe@neos.io'
      senderAddress: 'demo@neos.io'
      senderName: 'Neos Demo Site'
      replyToAddress: 'demo-reply@neos.io'
      attachments:
        - resource: 'resource://Neos.Demo/Private/Templates/ContactForm/Email.txt'
```

Templates
---------

[](#templates)

To use a Sendgrid template, just add your `templateId` to `options`.

Reference
=========

[](#reference)

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

[](#configuration)

To enable email transport, you will need to add your SendGrid API key to your configuration.

```
Gmedia:
  SendgridFinisher:
    apiKey: ''
```

Finisher Options
----------------

[](#finisher-options)

### templatePathAndFilename *(string)*

[](#templatepathandfilename-string)

Defines the resource path to the template of your email content.

### subject *(string)*

[](#subject-string)

Defines the subject of the email.

### recipients *(array)*

[](#recipients-array)

You can add multiple recipients. Each recipient must look like this, while at least the `email` parameter must be given.

```
recipients:
  -  'email': 'john@doe.com'
     'name': 'John Doe'
```

### carbonCopyRecipients *(array)*

[](#carboncopyrecipients-array)

See [recipients](#recipients).

### blindCarbonCopyRecipients *(array)*

[](#blindcarboncopyrecipients-array)

See [recipients](#recipients).

### senderAddress *(string)*

[](#senderaddress-string)

Defines the address which will show up as sender.

```
senderAddress: 'john.doe@neos.io'
```

### senderName *(string)*

[](#sendername-string)

Defines the name which will show up as sender.

```
senderName: 'John Doe'
```

### replyToAddress *(string)*

[](#replytoaddress-string)

Defines the address which will be set as address to receive replys to this mail.

```
replyToAddress: 'john.doe@neos.io'
```

### substitutions *(array)*

[](#substitutions-array)

SendGrid enables you to use variables in your templates, called substitutions. In this array you can define the key-value-pairs used to render the template.

```
'substitutions':
  '%sub1%': 'Johnny'
  '%sub2%': 'Hello World'
```

### trackingSettings

[](#trackingsettings)

You can adjust the tracking settings by adding the following options as required. For more information about this options, please refer to the [official SendGrid API reference](https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html#-Request-Body-Parameters).

```
'trackingSettings':
  'click_tracking':
    'enable': false
    'enable_text': ''
  'open_tracking':
    'enable': false
    'substitution_tag': ''
  'subscription_tracking':
    'enable': false
    'text': ''
    'html': ''
    'substitution_tag': ''
  'ganalytics':
    'enable': false
    'utm_source': ''
    'utm_medium': ''
    'utm_term': ''
    'utm_content': ''
    'utm_campaign': ''
```

### templateId *(string)*

[](#templateid-string)

Defines the id of the template which SendGrid should use to parse your email.

### additionalHeaders *(array)*

[](#additionalheaders-array)

Defines additional headers to be sent along to the other headers of the email.

### format *(string)*

[](#format-string)

Defines the format of the email to be sent. It can either be `plaintext` or `html`. **Notice:** `plaintext` will break HTML-behaviour of your SendGrid template if set!

### testMode *(boolean)*

[](#testmode-boolean)

If `true`, the email will not be sent and you will get a dump of the email object instead.

### attachments *(array)*

[](#attachments-array)

At the moment, we could only test adding resources as attachments. This can be done this way:

```
attachments:
  - resource: 'resource://Vendor.Site/Private/Folder/Resource.ext'
```

A option to send attachments provided by a file upload field in the form will be added later.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity65

Established project with proven stability

 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

Every ~178 days

Total

4

Last Release

2329d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4405087?v=4)[Felix Gradinaru](/maintainers/gradinarufelix)[@gradinarufelix](https://github.com/gradinarufelix)

---

Top Contributors

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

---

Tags

neoscmssendgrid

### Embed Badge

![Health badge](/badges/gmedia-sendgridfinisher/health.svg)

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

###  Alternatives

[swiftmade/laravel-sendgrid-notification-channel

Laravel Notification Channel for Sengrid.com

26287.7k](/packages/swiftmade-laravel-sendgrid-notification-channel)[neos/form-builder

Flow Form Framework integration into Neos CMS

19347.1k18](/packages/neos-form-builder)[iandenh/cakephp-sendgrid

SendgridEmail plugin for CakePHP

16123.4k](/packages/iandenh-cakephp-sendgrid)[bryglen/yii2-sendgrid

Sendgrid Mailer for Yii 2

1353.5k](/packages/bryglen-yii2-sendgrid)[wwwision/neos-mailchimp

Flow package that integrates MailChimp into your Neos site / Flow Application

2310.7k](/packages/wwwision-neos-mailchimp)

PHPackages © 2026

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