Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases

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
  #32  
Old 06-29-2005, 02:57 AM
psico psico is offline
 
Join Date: Oct 2001
Location: Buenos Aires, Argentina
Posts: 117
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
I prever something really big, just to see how your MTA rewrites headers from different ISP's. Think something in the tune of 100 megs
No, impossible...this will take weeks or more...
Reply With Quote
  #33  
Old 06-29-2005, 06:31 PM
Spinball's Avatar
Spinball Spinball is offline
 
Join Date: Feb 2002
Location: Telford, England
Posts: 705
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello tamarian.
I've set this hack up using the latest version.
My host has set all emails with the particular email address to go to /var/mail/admin.
It's 1,547,032 bytes in size at the moment and -rw-rw-rw-.
I've gone through the vbounce settings and selected my preferences and I have added collector and cleaner to the scheduled tasks.
Everything passes the diagnostics.
To speed things along I have run the collector but in the vbouncer report it shows nothing has happened.
Is there any way I can check to see why nothing is happening?
Reply With Quote
  #34  
Old 06-29-2005, 06:53 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Spinball
Hello tamarian.
I've set this hack up using the latest version.
My host has set all emails with the particular email address to go to /var/mail/admin.
It's 1,547,032 bytes in size at the moment and -rw-rw-rw-.
I've gone through the vbounce settings and selected my preferences and I have added collector and cleaner to the scheduled tasks.
Everything passes the diagnostics.
To speed things along I have run the collector but in the vbouncer report it shows nothing has happened.
Is there any way I can check to see why nothing is happening?
Are you using Exim? Was the mail file exclusively full of bounced emails? (I mean not SPAM and stuff, just hard and soft bounces). Was the scheduled task log really empty, no text or status header?

I'm working on handling Exim reports (or those with bounce messages without bounce reports). If you have a decent sized sample, please email it to me
Reply With Quote
  #35  
Old 06-29-2005, 07:17 PM
Spinball's Avatar
Spinball Spinball is offline
 
Join Date: Feb 2002
Location: Telford, England
Posts: 705
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sorry, I don't know what Exim is or how to view the contents of the mail file. Though we've sent some test emails to that account.
The scheduled task log for collect reports 'No matches found'.
Reply With Quote
  #36  
Old 06-29-2005, 07:37 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Spinball
Sorry, I don't know what Exim is or how to view the contents of the mail file. Though we've sent some test emails to that account.
The scheduled task log for collect reports 'No matches found'.
What email software is installed on your server?

A couple of things might be happening:

1. The file does not contain bounced emails, just regular emails, spam and the usual viruses, etc.

2. The file contain bounced emails, but no MTA bounce reports.

If it's #1, you may need to create a new email account for the sole purpose of using for vBouncer, so the file will contain only bounced emails.

If it's #2, your MTA doesn't generate bounce reports. This should be handled by the next version I'm working on.
Reply With Quote
  #37  
Old 06-30-2005, 12:30 PM
adhari_com's Avatar
adhari_com adhari_com is offline
 
Join Date: May 2004
Location: Bahrain
Posts: 74
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Working perfectly .. Thanks alot dude
Reply With Quote
  #38  
Old 06-30-2005, 03:48 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

psico and spinball: PM me your email addresses. I'll send you a copy of vbouncer-collect.php to test and see if it works on your setup. If all goes well, I'll release it along with the POP/IMAP code.
Reply With Quote
  #39  
Old 06-30-2005, 07:59 PM
Spinball's Avatar
Spinball Spinball is offline
 
Join Date: Feb 2002
Location: Telford, England
Posts: 705
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
psico and spinball: PM me your email addresses. I'll send you a copy of vbouncer-collect.php to test and see if it works on your setup. If all goes well, I'll release it along with the POP/IMAP code.
I emailed your last message to my host and he 'tweaked' and the hack now works!! Yeah!! Thanks for your help. 893 bounced emails right there!
I'm not sure I understand how altering the Bounce Limit and Bounce Limit Period affect how this hack works. For example, if a user has just a few bounced emails - say 5, I want to deactive their emails right away. I don't understand what the bounce period does.

One other thing - and was it you I had this conversation with re vbusy? The graphics don't appear in the chart because the specified location in the template is 'http://www.mydomain.com/forums/images/blahblah' and you might want to test for this in your hacks so the graphics work for people who have vBadvanced installed.
Reply With Quote
  #40  
Old 06-30-2005, 08:08 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Spinball
I emailed your last message to my host and he 'tweaked' and the hack now works!! Yeah!! Thanks for your help. 893 bounced emails right there!
I assume he turned on bounce reports in the MTA, which I think would be the best solution. As this is very specific to each server setup, I can't offer tips on how others can do it, but if you can share what he did, that would be great.

Quote:
I'm not sure I understand how altering the Bounce Limit and Bounce Limit Period affect how this hack works. For example, if a user has just a few bounced emails - say 5, I want to deactive their emails right away. I don't understand what the bounce period does.
Here's an example, say you set up:

Bounce limit = 50 emails
Bounce limit period = 7 days

Then only those who reach 50 email bounces within 7 days period will be processed.

You can set it to:

Bounce limit = 1 email
Bounce limit period = 1

This will auto process the user for any bounced email received
Reply With Quote
  #41  
Old 07-02-2005, 01:54 PM
ImportPassion ImportPassion is offline
 
Join Date: Mar 2002
Location: Gilbert, AZ
Posts: 605
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

so what is the status with Exim? I moved servers, but it still doesn't work. I have an 853kb inbox file if you want to look at it. But i don't think that is the issue. permissions is the problem.

Derek
Reply With Quote
Reply

Thread Tools

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:47 PM.


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.09230 seconds
  • Memory Usage 2,337KB
  • 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_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