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. erwane/whep-postal

ActiveLibrary

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

Postal webhooks handler

2.2.0(9mo ago)014MITPHPPHP ^8.1CI passing

Since Aug 2Pushed 9mo 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 1mo ago

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

33

—

LowBetter than 75% of packages

Maintenance58

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity52

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

Total

15

Last Release

270d 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

[commerceguys/addressing

Addressing library powered by CLDR and Google's address data.

95430.2M43](/packages/commerceguys-addressing)[spatie/laravel-webhook-server

Send webhooks in Laravel apps

1.1k8.8M22](/packages/spatie-laravel-webhook-server)[shopify/shopify-api

Shopify API Library for PHP

4634.8M16](/packages/shopify-shopify-api)[kyon147/laravel-shopify

Shopify package for Laravel to aide in app development

473252.9k](/packages/kyon147-laravel-shopify)[nexylan/slack

A simple PHP package for sending messages to Slack, with a focus on ease of use and elegant syntax.

1071.6M1](/packages/nexylan-slack)[symfony/webhook

Eases sending and consuming webhooks

573.0M35](/packages/symfony-webhook)

PHPackages © 2026

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