📬 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.
- PHP >= 5.4
- Enable the php_imap extension if you want to use the IMAP open mode.
composer require crazy-max/cws-mail-bounce-handler
And download the code:
composer install # or update
See tests/test.php
file sample to help you.
You can use the eml files in the tests/emls
folder for testing.
A result object Cws\MailBounceHandler\Models\Result
is available to process custom post-actions :
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)
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.
All kinds of contributions are welcomed 🙌!
The most basic way to show your support is to star 🌟 the project, or to raise issues 💬
But we're not gonna lie to each other, I'd rather you buy me a beer or two 🍻!
MIT. See LICENSE
for more details.