Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
vBouncer (PHP): reduce server load by unsubscribing bouncing members from threads Details »»
vBouncer (PHP): 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.0.7 Rating:
Released: 06-25-2005 Last Update: 08-28-2005 Installs: 19
Code Changes Additional Files  
No support by the author.

There's also a vB 3.5 version: https://vborg.vbsupport.ru/showthrea...threadid=83486

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. This was initially released for vB 2.x and vB 3.0.x as a Perl script, and is now fully integrated with vB as scheduled tasks with admin panel control.

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:
Manual or auto processing option
Collect logs via IMAP/POP or mail spool file
Uses vB's cron files (Scheduled tasks)
Custom filters to match patterns in bounced emails
Encryption header to authenticate bounces.
Stats on members with bouncing emails, and error codes
Tuning options
Verbose cron logs for diagnostics
Option to send PM warning prior to reaching the limit
Option to send PM notifications after reaching the limit
Option to change the member's subscription default
Option to all thread subscriptions to "no email"
Option to all forum subscriptions to "no email"
Option to move offenders to a different primary usergroup
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/cron => includes/cron)
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. Edit includes/mail.php
Find:
PHP Code:
if ($minusf)
        {
            
$this->success = @mail($toemail$subject$messagetrim($headers), "-f $fromemail");
        }
        else
        {
            
$this->success = @mail($toemail$subject$messagetrim($headers));
        } 
Replace with:
PHP Code:
global $vboptions;
                if (
is_valid_email($vboptions['vbouncer_spool_account'])) {
                        if (
$vboptions['vbouncer_header_return_key'])
                                
$headers .= 'X-Return-ID: ' md5($vboptions['vbouncer_header_return_key'] . $toemail) . "\n";
                        
$this->success = @mail($toemail$subject$messagetrim($headers), '-f' $vboptions['vbouncer_spool_account']);
                }
                else
                        
$this->success = @mail($toemail$subject$messagetrim($headers), "-f $fromemail"); 
In admincp/index.php, find:
PHP Code:
                                  if (can_administer('canadmincron')) 
Add before::
PHP Code:
                          if (can_administer('canadmincron'))
    {
        
construct_nav_option('vBouncer Settings''options.php?do=options&dogroup=vBouncer''|');
        
construct_nav_option('Stats''vbouncer.php?do=stats''<br />' );
        
construct_nav_option('Diagnostics''vbouncer.php?do=diag''<br />');
        
construct_nav_group('vBouncer');
    } 
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)

Change log:

- 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 added 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.51 for 3.0.7 Corrected installer file.

- June 27, 2005 v0.5 for 3.0.7 Add setting for custom header strings.

- June 26, 2005 v0.2 for 3.0.7 Initial release No changes, just removed the plugin

Screenshots from 3.5 beta, but it looks the same on 3.0.7...

Show Your Support

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

Comments
  #92  
Old 07-20-2005, 05:46 PM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
Yes, there is. Clcik on my profile and it should be listed there.

Very cool Very cool Very cool, I love you!

I'm searching for a thing like this for ages.
Reply With Quote
  #93  
Old 07-24-2005, 10:03 AM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
Another request for Cpanel+Exim users. I'm writing a POP maodule as an option instead of reading files. I'll need to test my code (from my home server) with your bouncer email box. If you'd like to volunteer please PM me the new account's (subscriber_notify) POP username and password.
Untouchable usergroups

Do I need to add spaces, comma's between??

And:

My mails are still sent from the webmasters address?
Reply With Quote
  #94  
Old 07-24-2005, 12:37 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Do I need to add spaces, comma's between??
Use commas. I can't beleive the description doesn't say that..

Quote:
My mails are still sent from the webmasters address?
Check the header of email notifications you get, if there's a "Return-Path" header with the new email account you created, then you're ready to go.
Reply With Quote
  #95  
Old 07-24-2005, 12:43 PM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Owh.. I didn't saw it; honestly.

X-Authentication-Warning: srv1.soccerquest.nl: soccerquest set sender to notify soccerquest using -f
X-MailScanner-From: notify soccerquest nl

I guess that's is it?
Reply With Quote
  #96  
Old 07-24-2005, 01:34 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Eagle Creek
X-Authentication-Warning: srv1.soccerquest.nl: soccerquest set sender to notify soccerquest using -f
X-MailScanner-From: notify soccerquest nl

I guess that's is it?
No, it doesn't show a "Return-Path" header. Generate a reply notification email, and view the full headers of that email.
Reply With Quote
  #97  
Old 07-24-2005, 01:53 PM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Return-Path: <notify@soccerquest.nl>
Received: from mwinf6008.wanadoo.nl (mwinf6008.wanadoo.nl)
by mwinb6006 (SMTP Server) with LMTP; Sun, 24 Jul 2005 16:50:56 +0200
X-Sieve: Server Sieve 2.2
Received: from me-wanadoo.net (localhost [127.0.0.1])
by mwinf6008.wanadoo.nl (SMTP Server) with ESMTP id 3CA612400089
for <wnl000000000000000108688945@back60-mail02-03.me-wanadoo.net>; Sun, 24 Jul 2005 16:50:56 +0200 (CEST)
Received: from srv1.soccerquest.nl (unknown [195.85.134.27])
by mwinf6008.wanadoo.nl (SMTP Server) with ESMTP id 2845C2400088
for <*my e-mail address*>; Sun, 24 Jul 2005 16:50:56 +0200 (CEST)
X-ME-UUID: 20050724145056165.2845C2400088@mwinf6008.wanadoo.n l
X-ClientAddr: 127.0.0.1
Received: from soccerquest.nl (localhost.localdomain [127.0.0.1])
by srv1.soccerquest.nl (8.12.11/8.12.11) with ESMTP id j6OEowYQ032206
for <*my e-mail address*>; Sun, 24 Jul 2005 16:50:58 +0200
Received: (from soccerquest@localhost)
by soccerquest.nl (8.12.11/8.12.11/Submit) id j6OEow4e019057;
Sun, 24 Jul 2005 16:50:58 +0200
Date: Sun, 24 Jul 2005 16:50:58 +0200
X-Authentication-Warning: srv1.soccerquest.nl: soccerquest set sender to notify AT soccerquest.nl using -f
To: *my e-mail address*
Subject: Reactie op post 'Reply test'
From: "SoccerQuest Mailer" <soccerquest AT soccerquest.nl>
Message-ID: <200507241458.ebeec4288039@www.soccerquest.nl>
X-Priority: 3
X-Mailer: vBulletin Mail via PHP
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-soccerquest-MailScanner-Information: Please contact the ISP for more information
X-soccerquest-MailScanner: Found to be clean
X-MailScanner-From: notify AT soccerquest.nl
This?
Reply With Quote
  #98  
Old 07-24-2005, 01:58 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Eagle Creek
This?
Yes, this line:

Code:
 Return-Path: <notify@soccerquest.nl>
Shows that it is sending the proper header to trap the bounced emails.
Reply With Quote
  #99  
Old 08-02-2005, 09:56 PM
mcyates mcyates is offline
 
Join Date: Jan 2003
Location: Middlesbrough, Cleveland
Posts: 798
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This isn't sending out pms to warn people.

Auto processing mode: Yes
Bounce limit: 10
Bounce limit period: 7
Send Notification PM: Yes
PM Sender ID: 1
PM Sender Username: boro_boy
Send PM warning: Yes
Warning Limit: 5
Punish Any Unknown Emails: No

Those are my settings, why isn't it sending pms out?

My stats for bounced emails are as follows:

User 1: 25 bounced emails
User 2: 22 bounced emails
User 3: 9 bounced emails
User 4: 6 bounced emails
User 5: 4 bounced emails

So the first 4 users should have got a warning via pm but they didn't. Weird!!!
Reply With Quote
  #100  
Old 08-02-2005, 10:09 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by mcyates
This isn't sending out pms to warn people.

Auto processing mode: Yes
Bounce limit: 10
Bounce limit period: 7
Send Notification PM: Yes
PM Sender ID: 1
PM Sender Username: boro_boy
Send PM warning: Yes
Warning Limit: 5
Punish Any Unknown Emails: No

Those are my settings, why isn't it sending pms out?

My stats for bounced emails are as follows:

User 1: 25 bounced emails
User 2: 22 bounced emails
User 3: 9 bounced emails
User 4: 6 bounced emails
User 5: 4 bounced emails

So the first 4 users should have got a warning via pm but they didn't. Weird!!!

The PM's will be sent the next time the vbouncer-clean.php task is run. When the vbouncer-collect.php task is run, it just collects the info and generates the stats. If the stats show that some members are due for a warning or auto-processing, those actions will be taken when on the next clean run.

You can make sure of this by just running the -clean task from the task manager, and it will take the required actions now. Check the -clean task logs to make sure the actions were taken.
Reply With Quote
  #101  
Old 08-02-2005, 10:56 PM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It worked perfect!

From more then 300 bounces EVERT DAY I now get not more then 2
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 11:35 PM.


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.05711 seconds
  • Memory Usage 2,345KB
  • 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
  • (1)bbcode_code
  • (4)bbcode_php
  • (8)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
  • (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