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
  #82  
Old 07-14-2005, 06:02 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Fallback
I have this installed but it will not display any bounced emails in the stats screen and the

"Last run with results" portion of the same screen shows "19:00, 31st Dec 1969" as the last run date even though I ran the cron script myself manually in the admincp to test it. Im using the IMAP mode. What could be set wrong?
The 1969 date implies it was not run, or failed the run.

1. What does the vBouncer diagnostic page show?
2. What does the scheduled task log show?
Reply With Quote
  #83  
Old 07-14-2005, 06:17 PM
Fallback Fallback is offline
 
Join Date: May 2005
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The diagnostic page has everything Passed. (the vBouncer Spool File Diagnostics are all failed which im not using because im using IMAP)

The scheduled task log shows....

Bouncer Collect 14:30, 14th Jul 2005 Status:
Processed 0 emails No bounced emails found.

-----------------------

vBounce Clean 11:54, 14th Jul 2005 Status:
Reply With Quote
  #84  
Old 07-14-2005, 07:02 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Fallback
The diagnostic page has everything Passed. (the vBouncer Spool File Diagnostics are all failed which im not using because im using IMAP)

The scheduled task log shows....

Bouncer Collect 14:30, 14th Jul 2005 Status:
Processed 0 emails No bounced emails found.

-----------------------

vBounce Clean 11:54, 14th Jul 2005 Status:
O.k. so it looks like it found no bounced emails.

Are you sure there were bounced emails in there? It will ignore any other type of emails, like spam or regular email.
Reply With Quote
  #85  
Old 07-14-2005, 11:19 PM
Fallback Fallback is offline
 
Join Date: May 2005
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I found the issue. When I installed the hack began to use the exim spool file method but decided to use the IMAP service because its easier to get going. based on your tip I realized that no emails were being delivered to the account and that was odd because we were getting tons of bounces up until the minute I added the hack. I then remembered that I changed the setting in my exim.conf file as indicated below and when I just changed it back to its normal state the bounce emails resumed delivery to the email account set up to collect bounces.


Quote:
Exim+cPanel: (thanks to Paul M for this tip)
In the exim config file ( /etc/exim.conf ), near the bottom is a section that begins with virtual_userdelivery: - in that section is a line which says mode = 0660 - change this to mode = 0666
I changed it back to '0660' and it works.

Thanks!

Is there any advantage in using the spool method over IMAP or POP?
Reply With Quote
  #86  
Old 07-14-2005, 11:25 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Fallback
I found the issue. When I installed the hack began to use the exim spool file method but decided to use the IMAP service because its easier to get going. based on your tip I realized that no emails were being delivered to the account and that was odd because we were getting tons of bounces up until the minute I added the hack. I then remembered that I changed the setting in my exim.conf file as indicated below and when I just changed it back to its normal state the bounce emails resumed delivery to the email account set up to collect bounces.

I changed it back to '0660' and it works.

Thanks!

Is there any advantage in using the spool method over IMAP or POP?
If you change the exim config to 0666 you must CHMOD the file to match, if one mismatches the other then it will fail.

The spool method would be faster I would think, but I can't think of any other real major advantage.
Reply With Quote
  #87  
Old 07-14-2005, 11:46 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Fallback
Is there any advantage in using the spool method over IMAP or POP?
Not really, use whichever you like.

Using the file is faster, but speed doesn't really matter, since you only run it once or twice a day. Because IMAP is slighter slower, it may offer a slight advantage by buffering the queries to match email addresses to members. But the differences are slight. IMAP is particularly useful to those who run multiple servers, where the mail server is remote, and the file spool would be inaccessable.
Reply With Quote
  #88  
Old 07-15-2005, 02:13 AM
Fallback Fallback is offline
 
Join Date: May 2005
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M
If you change the exim config to 0666 you must CHMOD the file to match, if one mismatches the other then it will fail.
.

When I initially changed the exim config 0666 I did not CHMOD anything. Should anything be changed now that I have changed it back to 0660?
Reply With Quote
  #89  
Old 07-15-2005, 04:40 AM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Fallback
When I initially changed the exim config 0666 I did not CHMOD anything. Should anything be changed now that I have changed it back to 0660?
No, you should be fine now.

Before you changed anything, the file was 660 and the config was 660 - because you only changed the config to 666, there was a mismatch and it stopped. Had you then changed the file to 666 it would have been okay as they would have matched again (both 666). You have fixed the mismatch by putting the config back, so they are now both 660 again.
Reply With Quote
  #90  
Old 07-20-2005, 04:06 PM
Eagle Creek's Avatar
Eagle Creek Eagle Creek is offline
 
Join Date: Jan 2004
Location: Netherlands
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

P-E-R-F-E-C-T!!!

Exactly what I'm looking for!!

(http://www.vbulletin.com/forum/showthread.php?p=920939)

Is there also a vB 3.5 version? My boards are still running 3.0.6 and 3.0.4 but when we want to upgrade?
Reply With Quote
  #91  
Old 07-20-2005, 05:35 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 also a vB 3.5 version? My boards are still running 3.0.6 and 3.0.4 but when we want to upgrade?
Yes, there is. Clcik on my profile and it should be listed there.
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 01:14 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.04751 seconds
  • Memory Usage 2,340KB
  • 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
  • (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