PHPackages                             pigeon/pigeon - 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. pigeon/pigeon

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

pigeon/pigeon
=============

Pigeon lets you easily manage your outbound email, push notifications and SMS. Visit https://pigeonapp.io for more details.

v0.2.0(7y ago)1431MITPHP

Since Feb 16Pushed 7y ago2 watchersCompare

[ Source](https://github.com/pigeonapp/pigeon-php)[ Packagist](https://packagist.org/packages/pigeon/pigeon)[ Docs](https://pigeonapp.io)[ RSS](/packages/pigeon-pigeon/feed)WikiDiscussions master Synced yesterday

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

Pigeon
======

[](#pigeon)

Pigeon lets you easily manage your outbound email, push notifications and SMS. Visit  for more details.

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

[](#installation)

The recommended way to install Pigeon is through Composer.

```
$ composer require pigeon/pigeon
```

Usage
-----

[](#usage)

```
$pigeon = new Pigeon\Client('PIGEON_PUBLIC_KEY', 'PIGEON_PRIVATE_KEY');
```

Public (`PIGEON_PUBLIC_KEY`) and private (`PIGEON_PRIVATE_KEY`) keys would be retrieved from the env variables if not passed.

### Prepare for the delivery

[](#prepare-for-the-delivery)

```
$message_identifier = 'message-identifier';
$parcels = ['to' => 'john@example.com'];
```

- Message identifier is used to identify the message. Grab this from your Pigeon dashboard.
- Parcels array accepts `to`, `cc`, `bcc` and `data`.

### Deliver

[](#deliver)

```
$pigeon->deliver($message_identifier, $parcels);
```

### Parcel sample (Single recipient)

[](#parcel-sample-single-recipient)

```
$parcels = [
  'to' => 'John Doe ',
  'cc' => [
    'admin@example.com',
    'Sales Team '
  ],
  'data' => [
    // template variables are added here
    'name' => 'John'
  ],
  'attachments' => [
    // `file` can be local file path, remote URL or a file pointer resource
    [
      'file' => '/path/to/image.png',
      'name' => 'Logo'
    ],
    [
      'file' => 'https://example.com/guide.pdf',
      'name' => 'Guide'
    ]
  ]
];
```

### Parcel sample (Multiple recipients)

[](#parcel-sample-multiple-recipients)

```
$parcels = [
  [
    'to' => 'John Doe ',
    'data' => [
      // template variables are added here
      'name' => 'John'
    ]
  ],
  [
    'to' => 'Jane Doe ',
    'data' => [
      // template variables are added here
      'name' => 'Jane'
    ]
  ],
];
```

Framework integration
---------------------

[](#framework-integration)

- [Laravel](https://github.com/pigeonapp/pigeon-laravel)

Contributing
------------

[](#contributing)

You can contribute in one of two ways:

1. File bug reports using the [issue tracker](https://github.com/pigeonapp/pigeon-php/issues).
2. Answer questions or fix bugs on the [issue tracker](https://github.com/pigeonapp/pigeon-php/issues).

This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.

License
-------

[](#license)

The composer package is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).

Code of Conduct
---------------

[](#code-of-conduct)

Everyone interacting in the Pigeon project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/pigeonapp/pigeon-php/blob/master/CODE_OF_CONDUCT.md).

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 60% 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 ~42 days

Total

2

Last Release

2599d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/07b73ea0871bb8a9f0e8f74bb189e4899f57ed443a6c6cf4d4cf04820a0d3793?d=identicon)[RabidFire](/maintainers/RabidFire)

![](https://www.gravatar.com/avatar/97b9cee5cbb1d337b508b4cf35aae7c5930a920e4c4c94424ceb34abb75ef3c1?d=identicon)[onerinas](/maintainers/onerinas)

---

Top Contributors

[![Amandeepsinghghai](https://avatars.githubusercontent.com/u/4034256?v=4)](https://github.com/Amandeepsinghghai "Amandeepsinghghai (3 commits)")[![onerinas](https://avatars.githubusercontent.com/u/5433320?v=4)](https://github.com/onerinas "onerinas (1 commits)")[![RabidFire](https://avatars.githubusercontent.com/u/330827?v=4)](https://github.com/RabidFire "RabidFire (1 commits)")

---

Tags

emailsmspush notificationpigeonpigeonapp

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

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

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

###  Alternatives

[mageplaza/module-smtp

SMTP Extension for Magento 2 helps the owner of store simply install SMTP (Simple Mail Transfer Protocol) server which transmits the messages into codes or numbers

3015.9M8](/packages/mageplaza-module-smtp)[garethp/php-ews

A PHP Library to interact with the Exchange SOAP service

113610.3k4](/packages/garethp-php-ews)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[ferdous/laravel-otp-validate

Laravel package for OTP validation with built-in features like retry and resend mechanism. Built in max retry and max resend blocking. OTP/Security Code can be send over SMS or Email of your choice with user-defined template.

7124.4k](/packages/ferdous-laravel-otp-validate)[symfony/fake-sms-notifier

Fake SMS (as email or log during development) Notifier Bridge.

27754.2k1](/packages/symfony-fake-sms-notifier)[nikolaposa/notifier

Extensible library for building notifications and sending them via different delivery channels.

211.6k](/packages/nikolaposa-notifier)

PHPackages © 2026

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