Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.7 > vBulletin 3.7 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Auto Bounce Messages Management Details »»
Auto Bounce Messages Management
Version: 1.0.0.b.1, by Milad Milad is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Category: Administrative and Maintenance Tools - Version: 3.7.0 Rating:
Released: 06-07-2008 Last Update: 06-07-2008 Installs: 86
DB Changes Uses Plugins
Additional Files Is in Beta Stage  
No support by the author.

Brought to you by Syrian Medical Society & Milado

Introduction: quoted from wikipedia 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:
  • vBulletin 3.7.1
  • catch-all email address, with POP3 access. (I use Google app (Gmail))

Features:
  • Auto Bounce Messages Management.
  • Uses POP3 protocol to retrieve messages from your catch-all email box.
  • On bounce detection the user will be moved to bounce usergroup (you can set which usergroup).
  • Works according to VERP.
A note:
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 bounces@yourdomain.ext
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: <20080608103128.551e45224330@www.yourdomain.ext>
This ID is generated By using the following code in /includes/class_mail.php:
PHP Code:
$msgid '<' gmdate('YmdHis') . '.' substr(md5($message microtime()), 06) . vbrand(100000999999) . '@' $http_host '>'
I take the red portion from the unique Message-ID, and the red portion from the domain name of the catch-all address:
Code:
Message-ID: <20080608103128.551e45224330@www.yourdomain.ext>
Code:
bounces@yourdomain.ext
The result will be:
Code:
bounce20080608103128.551e45224330@yourdomain.ext
Now every single message has its own unique envelope-from address. so if it gets returned as a bounce, I will recognize it easily.
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:
Attachment 81933

Know issues:
- In rare situations, a vacation reply may returned via the bounce path rather than the webmaster path.


Change log:
  • 1.0.0.b.1 first public release, on June, 8 2008.
Support:
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):
Quote:
Copyright (c) 1999-2005, Manuel Lemos
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Manuel Lemos nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

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. :up:

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #122  
Old 12-20-2008, 03:41 AM
Hornstar Hornstar is offline
 
Join Date: Jun 2005
Location: Australia
Posts: 2,469
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have a feeling it is because of this modification that I was finally able to send out 200 000 emails without my site lagging and crashing to death lol.

This morning I set it to send out to 1000 people at a time, and it just finished sending. My server load was under 5 all day which is fantastic compared to past results. and I just went to my mail queue and there are only 92 people left in the mail queue! I will check those accounts to see what happens to them in the next few days, but so far they are all still reg accounts. Thanks
Reply With Quote
  #123  
Old 12-25-2008, 12:28 PM
Alfa1's Avatar
Alfa1 Alfa1 is offline
 
Join Date: Dec 2005
Location: Netherlands
Posts: 3,537
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Milad View Post
It didn't die. I just have no time to continue the development. I've already started the beta 2.

If I have two projects, paid and non-paid. I would choose to work on the paid one for sure.

This mod doesn't get the support it needs, as members here refuse to post a back link to my website, and on the other side they ask for product improvements. I'm kind of disappointed by the community response.

So, this mod need to be sponsored by someone, as it's not on top of my priority list.
If you update this hack, so that it works and does the following, then I will donate $100. I am sure others will also donate. I ask others that want to donate to post here.
  • different responses to different error codes / Custom filters to match patterns in bounced emails. i.e. permanent error, mailbox full, etc should get a different response. Not many webmasters want their members account inactivated when a mailbox is full.
  • Does not affect moderators, super moderators and admins
  • Turn off all email notifications & remove subscriptions
  • Stats on members with bouncing emails, and error codes
  • Turns on Popup Notification of new Private Messages for bouncing member
  • Automatically send a notification PM to bouncing Member (customizable message)
  • Return members to their original usergroup when the member updates & confirms their new email.
That the following information is added to the bottom of all outgoing email messages:
  • If the email is an subscription, then add an explanation how to remove subscriptions by going to the userCP.
  • If the email is an subscription, then add an explanation how to stop receiving email from the site by going to the userCP.
  • To which email address the email has been sent.
  • Why the recipient is receiving the email. i.e. You have subscribed to thread X with your account Y on website Z.
  • From who(Name and url of site) the email is sent
  • How often the email will be sent.
  • The physical address of the organisation sending the email.
This would comply to the demands of large email providers like hotmail, AOL, Gmail, Yahoo, etc. For more information, see this article: How to keep your board from getting blacklisted as a spammer
Reply With Quote
  #124  
Old 01-03-2009, 07:03 PM
raagaswaram raagaswaram is offline
 
Join Date: Feb 2005
Posts: 83
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

does this work on 3.6.8
Reply With Quote
  #125  
Old 01-04-2009, 04:55 AM
Zachery's Avatar
Zachery Zachery is offline
 
Join Date: Jul 2002
Location: Ontario, Canada
Posts: 11,440
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Milad View Post
It didn't die. I just have no time to continue the development. I've already started the beta 2.

If I have two projects, paid and non-paid. I would choose to work on the paid one for sure.

This mod doesn't get the support it needs, as members here refuse to post a back link to my website, and on the other side they ask for product improvements. I'm kind of disappointed by the community response.

So, this mod need to be sponsored by someone, as it's not on top of my priority list.

Regards
Are you really that suprised that people don't want to provide a link to your webiste on every page of their forum for your back-end administrative feature. Thats like Brad wanting a link to his website for vB-Pizza Boy. Ok, so that is a stretch. But like I said before, you should be developing modifications that you use for your own needs or reasons. Not specificly to gain recognition. I understand you need to pay your bills, I'm sure many people would be willing to pay you for your time and effort to code addons. But none of us want a link to your website on _every_ page of our forum for something that none of our users will get any benifit out of.

You do good work, but the way you want to get recognized for it is not so well thought out.

Its a shame really, the community used to be alot more friendly. People helped each other and great things came from it.
Reply With Quote
  #126  
Old 01-06-2009, 10:53 AM
franzis franzis is offline
 
Join Date: Aug 2007
Posts: 39
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

now i got following infomation in my acp, but i'm not sure how to handle with them.

1) can i have a look at ... maybe a users list.. where it's notived which users are now in an other usergroup?
2) can i set up the time when the cronejob moves the users? it does it one time a day, ok, but what time?
is there a crone-log to have a look at?

or maybe my crone doesn't work if there's no log?
i can see the 4 users noticed on my acp screen for more than a week.. shouldn't change that number (into f.e. zero not available users) the next day?

yours sincerely
franzis
Reply With Quote
  #127  
Old 01-06-2009, 01:38 PM
Skyrider Skyrider is offline
 
Join Date: Feb 2006
Location: Netherlands
Posts: 1,392
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I can't get this to work, any idea why?

Quote:
Connected to the POP3 server "pop.gmail.com".
User "forum@xxxxx.net" logged in.
There are 1 message(s) in the mail box with a total of 2783 bytes.
Disconnected from the POP3 server "pop.gmail.com".
That 1 message has the following email:
Quote:
To: idonotexistherebecauseijustdont@gmail.com
Auto-Submitted: auto-generated
Return-Path: bounce@xxxxx.com
Message-ID: <20090106153133.6886912a2f2e@forum.xxxxx.net>
Yet, it didnt moved me nor did any action. And this is not a test. I forced a run..
Reply With Quote
  #128  
Old 01-06-2009, 02:48 PM
Milad's Avatar
Milad Milad is offline
 
Join Date: Apr 2005
Location: Syro
Posts: 663
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

this is a beta product
Reply With Quote
  #129  
Old 01-14-2009, 04:43 PM
MissKalunji's Avatar
MissKalunji MissKalunji is offline
 
Join Date: Aug 2003
Location: Canada
Posts: 2,845
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i'de love to get more details on that sponsor comment .....i'm not too familiar with that?
Reply With Quote
  #130  
Old 03-12-2009, 10:36 PM
kahethu kahethu is offline
 
Join Date: May 2005
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Alfa1 View Post
If you update this hack, so that it works and does the following, then I will donate $100. I am sure others will also donate. I ask others that want to donate to post here.
  • different responses to different error codes / Custom filters to match patterns in bounced emails. i.e. permanent error, mailbox full, etc should get a different response. Not many webmasters want their members account inactivated when a mailbox is full.
  • Does not affect moderators, super moderators and admins
  • Turn off all email notifications & remove subscriptions
  • Stats on members with bouncing emails, and error codes
  • Turns on Popup Notification of new Private Messages for bouncing member
  • Automatically send a notification PM to bouncing Member (customizable message)
  • Return members to their original usergroup when the member updates & confirms their new email.
That the following information is added to the bottom of all outgoing email messages:
  • If the email is an subscription, then add an explanation how to remove subscriptions by going to the userCP.
  • If the email is an subscription, then add an explanation how to stop receiving email from the site by going to the userCP.
  • To which email address the email has been sent.
  • Why the recipient is receiving the email. i.e. You have subscribed to thread X with your account Y on website Z.
  • From who(Name and url of site) the email is sent
  • How often the email will be sent.
  • The physical address of the organisation sending the email.
This would comply to the demands of large email providers like hotmail, AOL, Gmail, Yahoo, etc. For more information, see this article: How to keep your board from getting blacklisted as a spammer
I'll donate...

For now I choose not to install it based on the comments on this thread.
will keep an eye
Reply With Quote
  #131  
Old 03-13-2009, 01:20 AM
Zachery's Avatar
Zachery Zachery is offline
 
Join Date: Jul 2002
Location: Ontario, Canada
Posts: 11,440
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

He said he'd remove it originally in the first few pages of the thread, then never did.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:25 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08432 seconds
  • Memory Usage 2,350KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (4)bbcode_code
  • (1)bbcode_php
  • (6)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete