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
  #112  
Old 08-23-2005, 02:47 PM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is there a 3.5?
Reply With Quote
  #113  
Old 08-23-2005, 02:57 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Eagle Creek
Is there a 3.5?
Yes, click on my profile and it should be linked there.
Reply With Quote
  #114  
Old 08-23-2005, 03:04 PM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thx dude!!

https://vborg.vbsupport.ru/showthrea...threadid=83486
Reply With Quote
  #115  
Old 08-29-2005, 03:11 AM
gbechtel gbechtel is offline
 
Join Date: Aug 2005
Posts: 75
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

When trying to run vbouncer-clean.php via the Scheduled Task Manager I get the following....

Database error in vBulletin 3.0.8:

Invalid SQL: DELETE FROM vb3_vbouncer WHERE vbouncer.dateline < 1124683668
mysql error: Unknown table 'vbouncer' in where clause

mysql error number: 1109

Can someone point me in the right direction on what to edit to cure this?

Thanks,
Gil
Reply With Quote
  #116  
Old 08-29-2005, 03:28 AM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by gbechtel
When trying to run vbouncer-clean.php via the Scheduled Task Manager I get the following....


Database error in vBulletin 3.0.8:

Invalid SQL: DELETE FROM vb3_vbouncer WHERE vbouncer.dateline < 1124683668
mysql error: Unknown table 'vbouncer' in where clause

mysql error number: 1109


Can someone point me in the right direction on what to edit to cure this?

Thanks,
Gil
In vbouncer-clean.php find:

PHP Code:
$DB_site->query("DELETE FROM " TABLE_PREFIX "vbouncer WHERE vbouncer.dateline < $TestPeriod"); 
Replace with:

PHP Code:
$DB_site->query("DELETE FROM " TABLE_PREFIX "vbouncer WHERE  dateline < $TestPeriod"); 
Reply With Quote
  #117  
Old 08-29-2005, 04:06 AM
gbechtel gbechtel is offline
 
Join Date: Aug 2005
Posts: 75
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you that did the trick...

Gil
Reply With Quote
  #118  
Old 09-15-2005, 08:38 PM
Devices Devices is offline
 
Join Date: Nov 2001
Posts: 36
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi

This is a great hack. Thanks for your good work

It all seemed to install ok and it does catch a few but most bounces are not caught. I expect i just need the definitons to go in the .inc file. So if some kind soul could help me out here is one that is not picked up.

Code:
X-Kaspersky: Checked 
Date:     Thu, 15 Sep 2005 07:47:39 +0100
Message-Id: <10509150747.AA78381076@domain.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
From:     "Postmaster" <postmaster@domain.com>
Sender:   <postmaster@domain.com>
To:       <admin@domain.com>
Subject:  Undeliverable Mail
X-Mailer: <SMTP32 v8.00>
Status: U
X-PMFLAGS: 34078848 0 1 P32Z4HA0.CNM                        

undeliverable to username@myforums.com


Original message follows.

Received: from server [IP ADDRESS] by domain.com
  (SMTPD32-8.00) id AB25620110; Thu, 15 Sep 2005 03:23:33 +0100
Date: Thu, 15 Sep 2005 03:23:30 +0000
Subject: Reply to post
To: username@myforums.com
From: "My Forums" <support@myforums.com>
Return-Path: support@myforums.com
Message-ID: <200509150228.fd8e26864301@myforums.com>
X-Priority: 3
X-Mailer: vBulletin Mail via PHP
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Return-ID: [deleted ;o)]
X-Declude-Sender: admin@myforums.com [IP ADDRESS]
X-Note: This E-mail was scanned for spam.
If that what is needed i can post the others too.

Thank you.
Reply With Quote
  #119  
Old 09-15-2005, 09:04 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

First, delete this line from your post "X-Return-ID:" No big deal, but you never know.

Quote:
Originally Posted by Devices
It all seemed to install ok and it does catch a few but most bounces are not caught. I expect i just need the definitons to go in the .inc file. So if some kind soul could help me out here is one that is not picked up.
Add this to the end of vbouncer.inc
Code:
[case_5]
email_regex = "undeliverable to /<(\S+@\S+)>/mis";
apply_email_regex_on_body = yes;
email_append_host = no;
email_append_host_regex = "";
apply_append_regex_on_body = yes;
consider_as_5_0_0_regex = "/This is a permanent error/mis";
consider_as_550_regex = "/(user unknown|said: 550|unknown recipient|domain not found|mailbox not found|Mailbox unavailable|invalid recipient)/mis";
forged_if_no_return_id = yes;
Reply With Quote
  #120  
Old 09-15-2005, 09:21 PM
Devices Devices is offline
 
Join Date: Nov 2001
Posts: 36
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
First, delete this line from your post "X-Return-ID:" No big deal, but you never know.



Add this to the end of vbouncer.inc
Code:
[case_5]
email_regex = "^undeliverable to /<(\S+@\S+)>/mis";
apply_email_regex_on_body = yes;
email_append_host = no;
email_append_host_regex = "";
apply_append_regex_on_body = yes;
consider_as_5_0_0_regex = "/This is a permanent error/mis";
consider_as_550_regex = "/(user unknown|said: 550|unknown recipient|domain not found|mailbox not found|Mailbox unavailable|invalid recipient)/mis";
forged_if_no_return_id = yes;

Thank you for the fast reply.

I just added that and i got this error
Code:
Warning: preg_match(): No ending delimiter '^' found in \includes\cron\vbouncer-collect.php on line 103
Reply With Quote
  #121  
Old 09-15-2005, 10:03 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try it again, I edited out the ^
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 07:27 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.09820 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
  • (4)bbcode_code
  • (6)bbcode_php
  • (4)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