Auto Bounce Messages Management
This modification is in the archives.
Brought to you by http://www.syrianmeds.net/ & http://www.milado.net/ Introduction: quoted from https://en.wikipedia.org/wiki/Variable_envelope_return_path with adaptation. Any long-lived forums is going to eventually contain addresses that can't be reached. Addresses that were once valid can become unusable because the person receiving the mail there has switched to a different provider (possibly as a result of changing jobs or schools). In another scenario, the address may still exist but be abandoned, with unread mail accumulating until there is not enough room left to accept any more. The presence of invalid addresses in the forums results in bounce messages being sent to the owner of the forums. If the mailing list is small, the owner can read the bounce messages and manually remove the invalid addresses from the forums. With a larger forums, this is a tedious, unpleasant job, so it is desirable to automate the process. In short: This hack automates handling of the bounce messages. Requirements:
Features:
I believe there is no need to delete the user subscriptions. because once a user got moved to the "Awaiting email confirmation" usergroup, he / she won't be sent any additional emails. How Does It Work? You have your catch-all email box, that will be used to receive the bounce messages. Of course we must have a POP3 access to retrieve messages from it. Let's suppose that your catch-all email address is email After we set it properly, it will work as described below: 1) By default: On every single message being sent, vBulletin generates a unique Message-ID for it, example: Code:
Message-ID: <email> PHP Code:
$msgid = '<' . gmdate('YmdHis') . '.' . substr(md5($message . microtime()), 0, 6) . vbrand(100000, 999999) . '@' . $http_host . '>';
Code:
Message-ID: <20080608103128.551e45224330@www.yourdomain.ext> Code:
bounces@yourdomain.ext Code:
bounceemail So every message will be recorded in the database. each record consists of : toemail, bounceemail (the one we generated) and the timeline (for sake of pruning.) 2) A cron job runs every ten minutes to retrieve bounce messages from the catch-all email box. If the message sent to something similar to the bounceemail we generate, it will update the appropriate record in the database to be marked as returned. and delete the message from the POP3 server. 3) Another cron job runs once an hour, reads the bounced emails from the database and moves their owners to an usergroup which is determined by the admin from the settings. 4) Yet another cron job, will run once daily, to prune the records that haven't returned bounces in a settable period of time (30 days by default). Did I miss something here? Yeh, right. this is the first beta, I believe the core is almost done. but there may be some functions to add, and few things to tweak. I'm all opened to your suggestions. So feel free to dream! Installation & Upgrade: 1) Have your own catch-all email with POP3 access. I don't have the time to write a how-to article for this please do it yourself, you'll be luckily if someone explains it to others. 2) Upload files from the /upload/ folder in the package to their appropriate locations. 3) Install the xml product file: product-bounce_management.xml, of course choose yes to override when upgrading. 4) Refresh your AdminCP. you will see at the navigation side, above the Users tab, a new tab called "Bounces Management" 5) At that tab, go to the settings: Set your POP server settings, your "Bounce Usergroup" and "Exclude Usergroups". 6) At the same tab you will find a link called "Test POP Connection" to test the connection with your POP server. 7) Enjoy! Click install to let me enjoy too! Settings: Know issues: - In rare situations, a vacation reply may returned via the bounce path rather than the webmaster path. Change log:
The product marked as not supported, but that doesn't mean you won't see me again here. So please try to help each other. License & Credits: 1) I use the pop3_class from Manuel Lemos, Copyright (c) 1999-2005 to retrieve messages from the POP server, so all the credits regarding this go to him. Here is his license (included in the package too):
Click install to receive updates. You like it? nominate it. I'm looking forward to enter the Mod Of The Month competition. I depend on you. Also donations will help me to improve the product. Download
This modification is archived, downloads are still allowed. Screenshots |