PHPackages                             gcgov/bulk-email - 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. gcgov/bulk-email

ActiveFramework-service[Mail &amp; Notifications](/categories/mail)

gcgov/bulk-email
================

Tap into the centralized bulk email manager

v2.0.1(8mo ago)064MITPHPPHP &gt;=8.1

Since Sep 1Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/gcgov/bulkEmail)[ Packagist](https://packagist.org/packages/gcgov/bulk-email)[ RSS](/packages/gcgov-bulk-email/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (17)Used By (0)

GCGOV Email Package
===================

[](#gcgov-email-package)

Internal applications can include this package to generate bulk emails by subscribed channels or to send individual emails via the bulk email queue.

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

[](#installation)

`composer require gcgov/bulk-email`

---

API Configuration
-----------------

[](#api-configuration)

Prior to calling any methods in the library, define the api url and your access token.

```
\gcgov\framework\services\bulkEmail\config::setApiUrl( 'https://bulkemailapi.example.com' );
\gcgov\framework\services\bulkEmail\config::setApiAccessToken( '{jwt}' );
```

---

Debug Logging
-------------

[](#debug-logging)

To enable debug logging, add these lines prior to using the library.

```
\gcgov\framework\services\bulkEmail\config::setDebugLogging( true );
\gcgov\framework\services\bulkEmail\config::setDebugLogPath( 'C:/inetpub/logs' );
```

---

Save &amp; Subscribe Email Addresses to Channels
------------------------------------------------

[](#save--subscribe-email-addresses-to-channels)

This method will subscribe all provided email address to all provided channel ids. If a provided email address has existing channel subscriptions, the existing subscriptions will remain and new channels provided will be added as additional subscriptions. If a provided email address is already subscribed to a provided channel, the user will remain subscribed to that provided channel and new channels provided will be added as additional subscriptions.

```
//                                             messageToChannel( string[] $emailAddresses,   string[] $channelIds=[] )
\gcgov\framework\services\bulkEmail\bulkEmail::messageToChannel( ['jdoe@garrettcountymd.gov'], [ '64f1e3a45d0afbf5408370cc' ] );
```

Send a Bulk Email to Channel Subscribers
----------------------------------------

[](#send-a-bulk-email-to-channel-subscribers)

This method will queue the same message to *every* email address subscribed to a particular channel.

Actual mail sending is handled by the [Bulk Email API](https://github.com/gcgov/bulkEmailApi) and may be delayed based on message priority and sending limits.

```
$message            = new \gcgov\framework\services\bulkEmail\models\messageToChannel();

//wrap $message->message with this template
$message->template  = \gcgov\framework\services\bulkEmail\models\template::countyTemplate2023;

//if the brand heading should use department information, specify the id of the department to use. To use a generic leave null)
//$message->sendingDepartmentId  = '{departmentId}';

//send this message to all subscribers to this channel
$message->channelId = '{channelId}';

//email subject line
$message->subject   = 'Subject';

//email html body - do not use full
$message->message   = 'HTML message body';

//a reference to the event/item that generated this message
$message->reference = 'website.article.id=1';

//send
\gcgov\framework\services\bulkEmail\bulkEmail::messageToChannel( $message );
```

Send an Individual Email
------------------------

[](#send-an-individual-email)

To send an individual email, use `bulkEmail::messageToEmail()`

```
$message            = new \gcgov\framework\services\bulkEmail\models\messageToEmail();

//wrap $message->message with this template
$message->template  = \gcgov\framework\services\bulkEmail\models\template::countyTemplate2023;

//if the brand heading should use department information, specify the id of the department to use. To use a generic leave null)
//$message->sendingDepartmentId  = '{departmentId}';

//send this message to these email addresses
$message->to = ['jdoe@garrettcountymd.gov'];

//email subject line
$message->subject   = 'Subject';

//email html body - do not use full
$message->message   = 'HTML message body';

//a reference to the event/item that generated this message
$message->reference = 'payments.receipt.id=1';

//send
\gcgov\framework\services\bulkEmail\bulkEmail::messageToEmail( $message );
```

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance61

Regular maintenance activity

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

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 ~57 days

Recently: every ~154 days

Total

14

Last Release

246d ago

Major Versions

v1.3.2 → v2.0.0-rc.12025-08-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/e97ad9c5583ee03e1f670eba13bd11b81e3374da1941dce10f6da80e5dc6d8eb?d=identicon)[andrewsauder](/maintainers/andrewsauder)

---

Top Contributors

[![andrewsauder](https://avatars.githubusercontent.com/u/1380472?v=4)](https://github.com/andrewsauder "andrewsauder (16 commits)")

### Embed Badge

![Health badge](/badges/gcgov-bulk-email/health.svg)

```
[![Health](https://phpackages.com/badges/gcgov-bulk-email/health.svg)](https://phpackages.com/packages/gcgov-bulk-email)
```

###  Alternatives

[laravel-notification-channels/microsoft-teams

A Laravel Notification Channel for Microsoft Teams

1603.0M7](/packages/laravel-notification-channels-microsoft-teams)[laravel-notification-channels/discord

Laravel notification driver for Discord.

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

Push notification SDK(AnPush、Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、PushMe、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、WeWork、WPush、XiZhi、YiFengChuanHua、ZohoCliq、ZohoCliqWebHook、Zulip).

682104.9k7](/packages/guanguans-notify)[tzsk/sms

A robust and unified SMS gateway integration package for Laravel, supporting multiple providers.

320244.3k6](/packages/tzsk-sms)[pusher/pusher-push-notifications

562.5M9](/packages/pusher-pusher-push-notifications)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)

PHPackages © 2026

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