Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons

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
  #42  
Old 06-26-2005, 09:38 PM
buro9 buro9 is offline
 
Join Date: Feb 2002
Location: London, UK
Posts: 585
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
Paul, buro9 and 7thgen:

Are you guys on similar setups? CPanel+Exim?

If so, there might be an alternative solution. Exim allows forwarding through .forward file and can use pipe the emails to the shell. So if the symlink for some reason doesn't work, you might be able to capture the emails to an alternative file within your public_html space.
Yeah, Cpanel + Exim here
Reply With Quote
  #43  
Old 06-26-2005, 09:46 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M
The reject headers are ;
Paul, I'd like you to do a little test for me. Send several test emails from the vB diagnostics in the admin panel. Send them to bogus83y4ds (something not likely to be a real email) @ aol, comcast and hotmail, and show me the full content of the bounce file afterward, including the attachments (by PM if you prefer).

The header you showed will not be picked up by vBouncer since it's not RFC compliant, I think. Exim maybe re-writing them. If AOL, Comcast and hotmail result are in the same format, then Exim on your server might be intefering, since those ISP's do send (most of the time) RFC compliant non-delivery.
Reply With Quote
  #44  
Old 06-26-2005, 09:53 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

Sure - I'll PM you the results.
Reply With Quote
  #45  
Old 06-26-2005, 10:27 PM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

vBouncer 0.4 now works as a plugin, without code changes. (Thanks to Paul M)

To upgrade from 0.2 or 0.3, simply delete the old plugin and replace with the new one.
Reply With Quote
  #46  
Old 06-27-2005, 12:37 AM
Christine's Avatar
Christine Christine is offline
 
Join Date: Oct 2001
Location: PA
Posts: 472
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks tamarian!

I am also on cPanel/Exim. Will be upgrading my server to a new box this month, but I anticipate that will be the same as I believe this is core cPanel behaviour on mail handling -- I don't think it is an option?

I will gladly help with testing as well. Just let me know what you would like done.
Reply With Quote
  #47  
Old 06-27-2005, 01:02 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

Well, with a few bits of suitably placed sticky tape - I have a working system on cpanel / exim. I think tamarian will be producing an update later.
Reply With Quote
  #48  
Old 06-27-2005, 01:07 AM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Christine
Thanks tamarian!

I am also on cPanel/Exim. Will be upgrading my server to a new box this month, but I anticipate that will be the same as I believe this is core cPanel behaviour on mail handling -- I don't think it is an option?

I will gladly help with testing as well. Just let me know what you would like done.
For now, there's a temporary solution to access the mail spool file, which Paul has posted. A cron script to copy the file to the public_html area, then reset the original.

A better solution, IMHO, is to use the dot-forward file method (a feature available on all these mail packages, including Exim) to directly pipe the file to another in the public_html area. I'm still looking for the correct format, but if anyone knows, please share.

Another problem with Exim, is re-writing the headers for the bounced files, which will be missed by the current log collector. I'll release an updated version to capture those.

Does the CPanel/Exim show an option to forward to a file?
Reply With Quote
  #49  
Old 06-27-2005, 02:12 AM
merk merk is offline
 
Join Date: Nov 2001
Location: Canberra, Australia
Posts: 601
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The PHP restriction you speak of, would it happen to be open_basedir?

I use this extensivly across my enviroment.

All you have to do is add a single path to the directory block of the vBouncer files that allows php to access the path to the spool file.

If it isnt open_basedir, im not sure
Reply With Quote
  #50  
Old 06-27-2005, 02:17 AM
tamarian tamarian is offline
 
Join Date: Oct 2001
Location: Canada
Posts: 1,205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by merk
The PHP restriction you speak of, would it happen to be open_basedir?

I use this extensivly across my enviroment.

All you have to do is add a single path to the directory block of the vBouncer files that allows php to access the path to the spool file.

If it isnt open_basedir, im not sure
What do you mean by "add a single path to the directory block"?

I suspect CPanel might be chrooting the seperate systems, but I'm not sure, since I don't use it. But I can try to override the php.ini to see if that helps.
Reply With Quote
  #51  
Old 06-27-2005, 02:21 AM
merk merk is offline
 
Join Date: Nov 2001
Location: Canberra, Australia
Posts: 601
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tamarian
What do you mean by "add a single path to the directory block"?

I suspect CPanel might be chrooting the seperate systems, but I'm not sure, since I don't use it. But I can try to override the php.ini to see if that helps.
PHP has a "safe mode" system called open_basedir, it restricts PHP from going areas it isnt allowed to go into. It is controlled via php.ini, httpd.conf or .htaccess.

I do my modifications for each virtual site on my system in httpd.conf (using php_admin_value so that it cant be overridden by .htaccess).

Something like the following will allow PHP scripts to access /www/sitename, /tmp and /var/spool/mail (and outside of these paths will result in an error):

Code:
<Directory /www/sitename>
php_admin_value open_basedir "/www/sitename:/tmp:/var/spool/mail/"
</Directory>
Now, you'd have to be careful, and probably put subscriber_notify in its own directory.

Oh, and this wont help you if you're in a chroot enviroment
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 06:24 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.04880 seconds
  • Memory Usage 2,312KB
  • 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
  • (5)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