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
  #92  
Old 07-02-2005, 09:01 PM
Christine's Avatar
Christine Christine is offline
 
Join Date: Oct 2001
Location: PA
Posts: 472
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M
Never heard of it, so I guess not.
They are Exim filters for viruses.

Tamarian -- will get that set up for you tonight when the guys at my host finish with the kernel upgrade (that should have been done when it was configured :speechless: ).

If my results differ from Paul's, please note that I am running ClamAV, so we may need to document that.
Reply With Quote
  #93  
Old 07-02-2005, 09:10 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Christine
They are Exim filters for viruses.

Tamarian -- will get that set up for you tonight when the guys at my host finish with the kernel upgrade (that should have been done when it was configured :speechless: ).

If my results differ from Paul's, please note that I am running ClamAV, so we may need to document that.
If you use the POP/IMAP method, the Exim config edit is not required, since you will not need to access the spool file directly.

I'll write up any Exim hints and tips you guys give me, since you have the cPanel+Exim setup.
Reply With Quote
  #94  
Old 07-03-2005, 03:20 PM
Christine's Avatar
Christine Christine is offline
 
Join Date: Oct 2001
Location: PA
Posts: 472
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sent you a PM with some setup thoughts.

Do have a question on this though -- what does it do with bounced emails from new registrations? We delete registrations whose emails bounce and I don't want those to be included in the same tracking/warning as the ones who are subscribing to threads.

Second question -- does this (or will it plan to) address those who have email notifications on PMs in that it will remove this flag from their profile? I would even go as far as to say that if their email is bad, I would like ALL subscriptions and email notifications to be disabled.
Reply With Quote
  #95  
Old 07-03-2005, 04:02 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Christine
Do have a question on this though -- what does it do with bounced emails from new registrations? We delete registrations whose emails bounce and I don't want those to be included in the same tracking/warning as the ones who are subscribing to threads.
You can exclude usergroups from the settings menu under "Protected usergroups" (to prevent usergroup changes" Or under "Untouchable usergroups" to prevent any actions such unsubscribing or PM's.

But if they register with a wrong email, you'd only get 1 or two bounces. If your bounce limit is 25 or 50, they wouldn't be affected.

Quote:
Second question -- does this (or will it plan to) address those who have email notifications on PMs in that it will remove this flag from their profile? I would even go as far as to say that if their email is bad, I would like ALL subscriptions and email notifications to be disabled.
It's doable if you guys really want it.

But the main purpose for vBouncer is to prevent server spikes due to the volume of emails generated during busy hours for new replies and subsequent notifications of new replies. Reducing this volume through unsubscribing bouncing members is the main purpose.

An occasional email to notify about a PM doesn't have that impact on the server
Reply With Quote
  #96  
Old 07-03-2005, 09:51 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Update on the MD5 idea to check for forged bounced emails:

So far it seems most bounced emails will return the full original headers. The only exception I've seen so far is AOL, and only in the case when the AOL member in question rejects emails from your forum (i.e they are blocking your email from getting into their mail box.

So currently my upcoming version does the following:

1. Adds a new setting to enter your MD5 encryption string. If you leave it empty, it will not send the new header, and will process bounced emails as authentic. So it acts like an enable/disable option.

2. If you enter an MD5 encryption string, it will send the header out with outgoing email, but it will only check for them depending on the rules you set in vbouncer.inc pattern config file. This is done to allow the check to be turned on and off based on each pattern defined. If you define a pattern for AOL-sender-block (already defined in vbouncer.inc), you can set the check to no, so it will not ignore tham due to lack of the header.

3. If an MD5 header is defined, and the pattern requires the MD5 header, then it will ignore/skip bounced emails that do not have the header, or have the header but it did not match the MD5 key.

4. No additional manual queue to seperate which is which, since it's quite controllable by the settings, and only a small percentage (less than 1%) of bounced emails (in my logs at least) fall under this case.

So this is tested and running right now and ready for release as 1.0, let me know what you think.
Reply With Quote
  #97  
Old 07-04-2005, 12:42 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

I think I should read you post more carefully next time, I just re-installed it expecting to see this
Reply With Quote
  #98  
Old 07-04-2005, 12:51 AM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M
I think I should read you post more carefully next time, I just re-installed it expecting to see this
LOL, c'mon, you don't even need to wait, I expect you already have a separate branch with a working version I plan to release it tomorrow, just wanted to confirm the stats with a decent sample of bounces.
Reply With Quote
  #99  
Old 07-04-2005, 12:51 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

I also get the following in my ACP

Warning: imap_open(): Couldn't open stream in /admincp/vbouncer.php on line 143

I'm not using the POP/IMAP option.
Reply With Quote
  #100  
Old 07-04-2005, 12:53 AM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M
I also get the following in my ACP

Warning: imap_open(): Couldn't open stream in /admincp/vbouncer.php on line 143

I'm not using the POP/IMAP option.
You mean in the diagnostics page? That should be fine, I just thought I'll let it show everything that can work or not work, regardless of chosen option, for fiagnostic purposes.
Reply With Quote
  #101  
Old 07-04-2005, 12:57 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

Um, okay - it's a bit distracting getting an error message for something I don't use.

Anyway, the diagnostics show this ;

vbouncer.ini file exists = Passed
vbouncer.ini file is readable = Passed

But the cron log shows this : vbounce.ini not found, or empty. Only processing standard reports.

The file in the zip, which I uploaded appears to be called vbouncer.inc (not ini)
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 06:57 AM.


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.04681 seconds
  • Memory Usage 2,320KB
  • 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
  • (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