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

Reply
 
Thread Tools
vBouncer: reduce server load by unsubscribing bouncing members from threads Details »»
vBouncer: reduce server load by unsubscribing bouncing members from threads
Version: 1.2, by tamarian tamarian is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Version: 3.5.1 Rating:
Released: 06-20-2005 Last Update: 10-04-2005 Installs: 118
Uses Plugins
Additional Files  
No support by the author.

vBouncer is a handy tool for busy forums (or those that do not require email verification) to control the amounts of bogus emails sent from and to your server.

What vBouncer does: vBouncer monitors your mail spool file, and identifies members responsible for large amounts of bounced emails. It then issues a PM warning, and when the unsubscribe threshold is met, it will will unsubscribe them for all threads, and sets them to the "no email" subscription level.

After a couple of runs, this should significantly reduce your server load.

Features:
o Manual or auto processing option
o Collect logs via IMAP/POP or mail spool file
o Custom filters to match patterns in bounced emails
o Uses vB's cron files (Scheduled tasks)
o Uses encrypted header for authentication (suggested by Paul M).
o Stats on members with bouncing emails, and error codes
o Tuning options
o Verbose cron logs for diagnostics
o Option to send PM warning prior to reaching the limit
o Option to send PM notifications after reaching the limit
o Option to change the member's subscription default
o Option to all thread subscriptions to "no email"
o Option to all forum subscriptions to "no email"
o Option to move offenders to a different primary usergroup
o Option to process 5.0.0/550 errors (email unknown) upon a single email, isntead of observing the bounce limit


Installation:
1. Extract the files into the corresponding directories (admincp => admincp, includes => includes)
2. Run the installation script in the admincp
3. Fill out the settings menu in the vBouncer section of the admin panel (see the how-to post below)
4. Import and activate the plugin file through the plugin manager.
5. Once ready, add the cron scripts to your scheduled tasks: vbouncer-collect.php (should be run daily, or more frequently) and vbouncer-clean.php (weekly, equal to Bounce limit period)
6. If you are using vB's SMTP email option, make sure to also enable the "-f" option.

Change log:

- August 12, 2005 v1.3 Update to the cron files to match new changes in vB's cron/tasks. To upgrade, just re-upload the contents of includes/cron.

- July 11, 2005 v1.2 Bug fix for some server/PHP setups; resolve aliases for return keys, otherwise some aliases would be considered forged.

- July 5, 2005 v1.1 Bug fix in standard report pattern matching

- July 4, 2005 v1.0 Added encrypted header for authentication (suggested by Paul M).

- July 3, 2005 v0.9.1 fixed a bug preventing IMAP/POP log collection.

- July 2, 2005 v0.9 added IMAP/POP option and custom filters file vbouncer.ini

- June 27, 2005 v0.5 Added custom header setting option, for re-written headers.

- June 26, 2005 v0.4 Found a way to make it work as a plugin, without code edits (thanks to Paul M)

- June 26, 2005 v0.3 No changes, just removed the plugin

- June 25, 2005 v0.2 Added NDR/Reply code errors to stats, and option to act upon 5.0.0/550 (user unknown)

- June 21, 2005: v 0.1 Initial release. Marked beta, but it's working fine on PostFix and SendMail. Need to hear from those who tried on QMail and Exim

Show Your Support

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

Comments
  #332  
Old 01-18-2007, 12:04 AM
LunaTech LunaTech is offline
 
Join Date: Aug 2004
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

So I have this completely working in 3.6.4. I'm not sure what other members are having issue with. It correctly identifies bounced email and will automatically move users into the proper usergroup.

I uninstalled the 3.5 version, using the unistall option. Then I reinstalled using GNDI's version a few pages back.

I did make two changes in vbouncer-clean.php.

Replace the send_pm function with the folllowing (properly sends users pms):
Code:
function send_pm($phrase, $userid, $username, $bounces, $langid, $bouncing_email)
{
        global $vbulletin;

 		$username = unhtmlspecialchars($username);
		eval(fetch_email_phrases($phrase, $langid));

        $pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY);         

	    $pmdm->set('fromuserid', $vbulletin->options['vbouncer_pm_sender_id']);
        $pmdm->set('fromusername', $vbulletin->options['vbouncer_pm_sender_username']);
		$pmdm->set_info('receipt', false);
		$pmdm->set_info('savecopy', false);
		$pmdm->overridequota = true;                   // Force pm send even if recipient's mailbox is full
		$pmdm->set('title', $subject);
		$pmdm->set('message', $message);
		$pmdm->set('dateline', TIMENOW);
		$pmdm->set('allowsmilie', false);            
		
        $pmdm->set_recipients($username, $botpermissions);
        
        if (empty($pmdm->errors) > 0) $pmdm->save();
        else echo '<pre>111' . print_r($pmdm->errors,true) . '</pre>';
}
Then find:

Code:
        if ($stats['ugid'] == 6 OR in_array($stats['ugid'], explode(',', $vbulletin->options['vbouncer_auto_ug_untouchables']))) continue;
And replace it with (fixes an issue with sending pms and email notices to users who are already bouncing):

Code:
        if ($stats['ugid'] == 6 OR in_array($stats['ugid'], explode(',', $vbulletin->options['vbouncer_auto_ug_untouchables'])) OR $stats['ugid'] == $vbulletin->options['vbouncer_auto_ug_destination']) continue;
That is all I've done. I'm also attaching a copy of my settings so you can see what your settings should look like.

To make sure you're setting this up right - first you create the bouncer email address.
Make sure it works.
Setup a usergroup for bounced users.
Uninstall vBouncer.
Install GNDI's vBouncer. Configure vBouncer.
Check the email account (make sure to leave the messages on the server, so connect using imap or a webmail system) and see if you have some bounced emails.

If not, wait.
If you do, run the Scheduled Task for vBouncer Collect.
Look at the cron log, is there an entry for vBouncer Collect? What does it say?
Look at your vBouncer Stats, are there entries there?
Check the email account again. Have the emails been deleted?

Now run the Scheduled Task for vBouncer Clean. Did it give errors or say done?
Check the cron log, is there an entry for vBouncer Clean?

There you go. I may not have time to answer many questions, but I'll try. Good luck!
Reply With Quote
  #333  
Old 01-23-2007, 03:31 PM
redspider's Avatar
redspider redspider is offline
 
Join Date: Jul 2005
Posts: 225
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I try to clean my db after unistall this hack and when I try to install again give me error any way to upgrade this hack so over write old data ?
Reply With Quote
  #334  
Old 01-23-2007, 05:36 PM
Coldhands's Avatar
Coldhands Coldhands is offline
 
Join Date: Oct 2005
Posts: 87
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Any chance of this being ported to 3.6 or if it works on vB 3.6?
Reply With Quote
  #335  
Old 02-12-2007, 05:35 PM
kontrabass kontrabass is offline
 
Join Date: Feb 2002
Posts: 139
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

[edit]

Works great - thanks LunarTech. Running 3.6.4.

A bit of any unrelated question: when I installed this I was using php mail. I just changed to SMTP mail using -f param Now, the From address is still my default vbulletin admin email, while the "Return-Path" is the vbouncer email. I'm assuming this is correct behavior. But it would be great to not have the default vbulletin admin email as the "from" address though - I always get people replying to post notifications
Reply With Quote
  #336  
Old 02-16-2007, 11:57 AM
zlos zlos is offline
 
Join Date: May 2005
Location: PL
Posts: 101
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by t3nt3tion View Post
Is this vb 3.6.x compatible ??
Quote:
Originally Posted by Coldhands View Post
Any chance of this being ported to 3.6 or if it works on vB 3.6?
I was using this hack with 3.5.x and I miss it really in 3.6.x.

It there any way to get this working without great manual work on 3.6.x series?
Maybe authour would agree that somebody else ports it to 3.6.x if he have had no time to do it by himself???
Reply With Quote
  #337  
Old 05-02-2007, 03:56 PM
xxcfdrr xxcfdrr is offline
 
Join Date: Dec 2003
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Does this work on 3.6?
Reply With Quote
  #338  
Old 05-02-2007, 04:21 PM
t3nt3tion's Avatar
t3nt3tion t3nt3tion is offline
 
Join Date: Aug 2005
Location: 3rd Planet from the Sun
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I checked the whole post. It seems it`s a douzy installing it, but getting it to work on a busy forum, it comes as a plus. It can run with v3.6.x, but there might be incompatibilities.
Reply With Quote
  #339  
Old 05-04-2007, 01:22 AM
xlguy's Avatar
xlguy xlguy is offline
 
Join Date: Feb 2004
Location: UK
Posts: 168
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've got it working on 3.6.4 for me, using GNDI's version posted earlier in the thread and the instructions posted above by LunaTech. Thanks guys
Reply With Quote
  #340  
Old 06-28-2007, 12:38 AM
dinodonk dinodonk is offline
 
Join Date: Aug 2005
Posts: 106
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

does it work for 3.6.7?
Reply With Quote
  #341  
Old 07-07-2007, 07:54 AM
neopet001 neopet001 is offline
 
Join Date: May 2007
Posts: 51
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

When I accessed install page, it always displayed the mysql error page,it showed that the sql query is not compatible.....
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 03:26 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04975 seconds
  • Memory Usage 2,321KB
  • 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
  • (3)bbcode_code
  • (2)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