zoon / php-bounce-handler
Installs: 3 999
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 71
pkg:composer/zoon/php-bounce-handler
Requires
- php: >=8.4
Requires (Dev)
- phpcsstandards/phpcsutils: ^1.2
- phpunit/phpunit: ^11.0
- squizlabs/php_codesniffer: ^4.0
- vimeo/psalm: ^6.15
README
Modern PHP 8.4+ library for parsing bounce emails, FBL reports, and autoresponses.
Package: zoonru/php-bounce-handler
Features
- Detects email type:
bounce,fbl,autoresponse - Extracts action and status (
failed,transient,success, SMTP/RFC status codes) - Resolves reason (
userunknown,notaccept,filtered) - Parses FBL fields (source IP, original sender/recipient, agent)
- Detects FBL from common patterns:
report-type=feedback-report,message/feedback-reportMIME parts,Feedback-ID/X-Feedback-ID, provider loop headers - Includes fixture-driven regression tests (
eml/)
Requirements
- PHP
>= 8.4 - Composer
Installation
composer install
Quick Start
<?php require_once 'vendor/autoload.php'; use Zoon\BounceHandler\BounceHandler; $rawEmail = file_get_contents('eml/1.eml'); $handler = new BounceHandler(); $results = $handler->parse($rawEmail); foreach ($results as $result) { echo $result->emailType->value . PHP_EOL; // bounce|fbl|autoresponse echo $result->action->value . PHP_EOL; // failed|transient|success|autoresponse echo $result->deliveryStatus . PHP_EOL; // e.g. 5.1.1 echo $result->recipient . PHP_EOL; echo $result->reason->value . PHP_EOL; }
Development
composer lint # psalm + phpcs composer test # phpunit composer psalm composer phpcs composer phpcbf
Project Structure
src/- library source codetests/- PHPUnit test suiteeml/- anonymized sample emails and fixtures (fixture_*) for parsing regression checks
Status
Current version is a namespaced PHP 8 rewrite with enums, readonly DTOs, static analysis, and PHPUnit coverage.