crazy-max / 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).
Installs: 14 260
Dependents: 0
Suggesters: 0
Security: 0
Stars: 35
Watchers: 10
Forks: 13
Open Issues: 2
Requires
- php: >=5.4
- crazy-max/cws-debug: ~1.11
README
⚠️ Abandoned project
This project is not maintained anymore and is abandoned. Feel free to fork and make your own changes if needed.
Thanks to everyone for their valuable feedback and contributions.
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
- PHP >= 5.4
- Enable the php_imap extension if you want to use the IMAP open mode.
Installation
composer require crazy-max/cws-mail-bounce-handler
And download the code:
composer install # or update
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
A result object Cws\MailBounceHandler\Models\Result
is available to process custom post-actions :
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)
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 ?
All kinds of contributions are welcome 🙌! The most basic way to show your support is to star 🌟 the project, or to raise issues 💬 You can also support this project by becoming a sponsor on GitHub 👏 or by making a Paypal donation to ensure this journey continues indefinitely! 🚀
Thanks again for your support, it is much appreciated! 🙏
License
MIT. See LICENSE
for more details.