PHPackages                             erwane/whep-postal - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. erwane/whep-postal

Abandoned → [erwane/whep](/?search=erwane%2Fwhep)Library[HTTP &amp; Networking](/categories/http)

erwane/whep-postal
==================

Postal webhooks handler

2.2.0(10mo ago)015MITPHPPHP ^8.1CI passing

Since Aug 2Pushed 10mo agoCompare

[ Source](https://github.com/Erwane/whep-postal)[ Packagist](https://packagist.org/packages/erwane/whep-postal)[ Docs](https://github.com/Erwane/whep-postal)[ RSS](/packages/erwane-whep-postal/feed)WikiDiscussions 2.x Synced today

READMEChangelogDependencies (5)Versions (15)Used By (0)

[Postal](https://docs.postalserver.io/) webhook handler for [WHEP](https://github.com/Erwane/whep-postal) project
=================================================================================================================

[](#postal-webhook-handler-for-whep-project)

[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![codecov](https://camo.githubusercontent.com/ffa9fd3f6f2cf2847e0952cbcf787098f3ad2a056566ee12f7385cc506d7d733/68747470733a2f2f636f6465636f762e696f2f67682f457277616e652f776865702d706f7374616c2f67726170682f62616467652e7376673f746f6b656e3d463834385a375a315a32)](https://codecov.io/gh/Erwane/whep-postal)[![CI](https://github.com/Erwane/whep-postal/actions/workflows/ci.yml/badge.svg)](https://github.com/Erwane/whep-postal/actions/workflows/ci.yml)[![Packagist Downloads](https://camo.githubusercontent.com/bfbcc24c8f84b6a20b61fd0a53e8e5f45f9a09daeb7095fd91d33f5fbd0c3195/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f457277616e652f776865702d706f7374616c)](https://packagist.org/packages/Erwane/whep-postal)[![Packagist Version](https://camo.githubusercontent.com/47184e4c0494cc6f6b46a5a422e482bee1019b605e7451b6eefe6c130bebad39/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f457277616e652f776865702d706f7374616c)](https://packagist.org/packages/Erwane/whep-postal)

Webhook handler for [postal](https://docs.postalserver.io/) emailing provider.

Usage
-----

[](#usage)

```
composer require erwane/whep-postal
```

```
use WHEP\Exception\IpException;
use WHEP\Exception\ProviderException;
use WHEP\Factory;

try {
    $provider = Factory::provider('postal', [
        'allowed_ip' => ['my.postal.server.ipv4', 'my:postal:server::ipv6'],
        'client_ip' => $_SERVER['REMOTE_ADDR'] ?? null, // Use method from your framework to get the ServerRequest client ip.
        'callbacks' => [
            ProviderInterface::EVENT_BLOCKED => [$this, 'callbackInvalidate'],
            ProviderInterface::EVENT_BOUNCE_QUOTA => [$this, 'callbackUnsub'],
        ],
    ]);

    // process the data.
    $provider->process($webhookData);

    // Data available from provider getters.
    $recipient = $provider->getRecipient();

    // Launch callbacks
    $provider->callback();
} catch (IpException $e) {
    // log ?
} catch (ProviderException $e) {
    // log ?
}
```

See [WHEP Client README](https://github.com/Erwane/whep-client) for options and getters methods.

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance53

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

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

Recently: every ~81 days

Total

15

Last Release

1d ago

Major Versions

1.1.0 → 2.1.02025-08-11

1.1.1 → 2.0.12025-08-12

1.2.0 → 2.0.22025-08-12

PHP version history (3 changes)1.0.0PHP ^7.2

2.1.0PHP ^8.1

2.0.0PHP 8.0.\*

### Community

Maintainers

![](https://www.gravatar.com/avatar/91732d78336582954080932d4350d08420a053dbba6728f1727b5500ab931c65?d=identicon)[Erwane](/maintainers/Erwane)

---

Top Contributors

[![Erwane](https://avatars.githubusercontent.com/u/712604?v=4)](https://github.com/Erwane "Erwane (12 commits)")

---

Tags

postalwebhook

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/erwane-whep-postal/health.svg)

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

###  Alternatives

[shopify/shopify-api

Shopify API Library for PHP

4655.4M23](/packages/shopify-shopify-api)[symfony/webhook

Eases sending and consuming webhooks

573.6M77](/packages/symfony-webhook)[renoki-co/laravel-aws-webhooks

Easy webhook handler for Laravel to catch AWS SNS notifications for various services.

73251.1k](/packages/renoki-co-laravel-aws-webhooks)[mvdnbrk/laravel-postmark-webhooks

Handle Postmark webhooks in a Laravel application.

2744.8k](/packages/mvdnbrk-laravel-postmark-webhooks)[skrepr/teams-connector

A simple PHP package for sending messages to Microsoft Teams

2211.6k1](/packages/skrepr-teams-connector)[akhan619/laravel-ses-tracking

A Laravel artisan based package to create the AWS (SES + SNS) infrastructure to receive email event notifications with Http/Https endpoint.

1410.0k](/packages/akhan619-laravel-ses-tracking)

PHPackages © 2026

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