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 2w ago

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

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity52

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

2648d ago

### Community

Maintainers

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

![](https://avatars.githubusercontent.com/u/5433320?v=4)[Rinas](/maintainers/onerinas)[@onerinas](https://github.com/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

[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

252143.0k](/packages/erag-laravel-disposable-email)[ellaisys/aws-cognito

AWS Cognito package that allows Auth and other related features using the AWS SDK for PHP

121242.9k1](/packages/ellaisys-aws-cognito)[bentools/webpush-bundle

Send push notifications through Web Push Protocol to your Symfony users.

72285.7k](/packages/bentools-webpush-bundle)[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.

7024.6k](/packages/ferdous-laravel-otp-validate)[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)
