PHPackages                             hope-media/cws-mail-bounce-handler - 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. hope-media/cws-mail-bounce-handler

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

hope-media/cws-mail-bounce-handler
==================================

PHP class to help webmasters handle bounce-back, feedback loop and ARF mails in standard DSN (Delivery Status Notification, RFC-1894).

1.15(7y ago)226MITPHPPHP &gt;=5.4

Since Nov 17Pushed 7y ago5 watchersCompare

[ Source](https://github.com/hope-media/CwsMailBounceHandler)[ Packagist](https://packagist.org/packages/hope-media/cws-mail-bounce-handler)[ Docs](https://github.com/hope-media/CwsMailBounceHandler)[ RSS](/packages/hope-media-cws-mail-bounce-handler/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (1)Versions (10)Used By (0)

CwsMailBounceHandler
====================

[](#cwsmailbouncehandler)

About
-----

[](#about)

PHP class to help webmasters handle bounce-back, feedback loop and ARF mails in standard DSN (Delivery Status Notification, RFC-1894). It checks your IMAP inbox or eml files and delete or move all bounced emails. If a bounce is malformed, it tries to extract some useful information to parse status.

Requirements
------------

[](#requirements)

- PHP &gt;= 5.4
- Enable the [php\_imap](http://php.net/manual/en/book.imap.php) extension if you want to use the IMAP open mode.

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

[](#installation)

```
composer require hope-media/cws-mail-bounce-handler
```

And download the code:

```
composer install # or update
```

Getting started
---------------

[](#getting-started)

See `tests/test.php` file sample to help you.
You can use the eml files in the `tests/emls` folder for testing.

Post-process
------------

[](#post-process)

A result object `Cws\MailBounceHandler\Models\Result` is available to process custom post-actions.

Methods
-------

[](#methods)

**openImapLocal** - Open a IMAP mail box in local file system.
**openImapRemote** - Open a remote IMAP mail box.
**openEmlFolder** - Open a folder containing eml files on your system.

**processMails** - Process the messages in a mailbox or a folder.

**getStatusCodeExplanations** -Get explanations from DSN status code via the RFC 1893.

**isMailboxOpenMode** - Check if open mode is mailbox.
**isFileOpenMode** - Check if open mode is file.
**isNeutralProcessMode** - Check if process mode is neutral mode.
**isMoveProcessMode** - Check if process mode is move mode.
**isDeleteProcessMode** - Check if process mode is delete mode.
**getProcessMode** - The method to process bounces.
**setNeutralProcessMode** - Set the method to process bounces to neutral. (default)
**setMoveProcessMode** - Set the method to process bounces to move.
**setDeleteProcessMode** - Set the method to process bounces to delete.
**setProcessMode** - Set the method to process bounces.
**getMailboxService** - Mailbox service.
**setImapMailboxService** - Set the mailbox service to IMAP. (default)
**setPop3MailboxService** - Set the mailbox service to POP3.
**setMailboxService** - Set the mailbox service.
**getMailboxHost** - Mailbox host server.
**setMailboxHost** - Set the mailbox host server. (default localhost)
**getMailboxUsername** - The username of mailbox.
**setMailboxUsername** - Set the username of mailbox.
**setMailboxPassword** - Set the password needed to access mailbox.
**getMailboxPort** - The mailbox server port number.
**setMailboxPortPop3** - Set the mailbox server port number to POP3 (110).
**setMailboxPortPop3TlsSsl** - Set the mailbox server port number to POP3 TLS/SSL (995).
**setMailboxPortImap** - Set the mailbox server port number to IMAP (143). (default)
**setMailboxPortImapTlsSsl** - Set the mailbox server port number to IMAP TLS/SSL (995).
**setMailboxPort** - Set the mailbox server port number.
**getMailboxSecurity** - The mailbox security option.
**setMailboxSecurity** - Set the mailbox security option. (default const MAILBOX\_SECURITY\_NOTLS)
**getMailboxCert** - Certificate validation.
**setMailboxCertValidate** - Set the certificate validation to VALIDATE.
**setMailboxCertNoValidate** - Set the certificate validation to NOVALIDATE. (default)
**setMailboxCert** - Set the certificate validation.
**getMailboxName** - Mailbox name.
**setMailboxName** - Set the mailbox name, other choices are (Tasks, Spam, Replies, etc...). (default INBOX)
**getMailboxHandler** - The resource handler for the opened mailbox (POP3/IMAP/NNTP/etc...).
**getMaxMessages** - Maximum limit messages processed in one batch.
**setMaxMessages** - Set the maximum limit messages processed in one batch (0 for unlimited).
**isPurge** - Check if purge unknown messages.
**setPurge** - Set the mailbox server port number.
**getError** - The last error message.

How can i help ?
----------------

[](#how-can-i-help-)

All kinds of contributions are welcomed!
The most basic way to show your support is to star the project, or to raise issues.

License
-------

[](#license)

MIT. See `LICENSE` for more details.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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

Total

9

Last Release

2658d ago

PHP version history (2 changes)1.8PHP &gt;=5.3.2

1.12PHP &gt;=5.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/4e6de75fb237a8da02a8a46ba02c80c431dab867c614e05da8957145737ad4a3?d=identicon)[tobiasklepp](/maintainers/tobiasklepp)

---

Top Contributors

[![crazy-max](https://avatars.githubusercontent.com/u/1951866?v=4)](https://github.com/crazy-max "crazy-max (18 commits)")[![fpiccinali](https://avatars.githubusercontent.com/u/9351145?v=4)](https://github.com/fpiccinali "fpiccinali (12 commits)")[![ickbinhier](https://avatars.githubusercontent.com/u/2810904?v=4)](https://github.com/ickbinhier "ickbinhier (5 commits)")[![tobiasklepp](https://avatars.githubusercontent.com/u/317780?v=4)](https://github.com/tobiasklepp "tobiasklepp (2 commits)")

---

Tags

maildsnbouncearf

### Embed Badge

![Health badge](/badges/hope-media-cws-mail-bounce-handler/health.svg)

```
[![Health](https://phpackages.com/badges/hope-media-cws-mail-bounce-handler/health.svg)](https://phpackages.com/packages/hope-media-cws-mail-bounce-handler)
```

###  Alternatives

[zbateson/mail-mime-parser

MIME email message parser

53949.2M79](/packages/zbateson-mail-mime-parser)[galata90/php-mail-bounce-handler

PHP class to help webmasters handle bounce-back, feedback loop and ARF mails in standard DSN (Delivery Status Notification, RFC-1894).

122.4k](/packages/galata90-php-mail-bounce-handler)[zbateson/stream-decorators

PHP psr7 stream decorators for mime message part streams

4748.6M6](/packages/zbateson-stream-decorators)[voku/bounce-mail-handler

Bounce Mail Handler

49230.9k2](/packages/voku-bounce-mail-handler)[opcodesio/mail-parser

Parse emails without the mailparse extension

216.8M8](/packages/opcodesio-mail-parser)[bashkarev/email

Faster MIME Mail Parser could be used to parse emails in MIME format.

208.8k](/packages/bashkarev-email)

PHPackages © 2026

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