The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
![]() |
||||||||||||||||||||||||||||
vBouncer : Change thread subscribtion options for members with bouncing emails
![]() Developer Last Online: Nov 2023 ![]() ![]()
Update April 5th: Step 2A for vBulletin 3 Gold added.
What vBouncer does vBouncer will reduce your server load, bandwidth, and your forum admin in-box, by unsubscribing members who keep bouncing their emails back to your forum admin email, which may bomb your mail box if you have a busy forum with many members who subscribe to many threads, but their emails are either invalid, inbox full, or have ISP problems. Screen shots None, this is a command line script, with some changes in functions.php Who may want to use this? 1. Very busy sites, with thousands of notifications a day. 2. Your admin box gets too many bouncing emails 3. You use Postfix or Sendmail. I'm not sure how this works on other mail servers, please let me know if this works with QMail, or Exism. Caution This may drive some of your members mad ![]() Use at your own risk. I'm sharing this since some indicated interest at vBulletin.com in this thread: http://www.vbulletin.com/forum/showt...threadid=71496 I'd be glad to help answer questions, but as with most hacks, it is your responsibility.... Installation 1. Create a unique email address on your server, dedicated to catch bouncing emails. Do not use adminemail, or any other existing email that you want to receive through a POP account. This email will be used only to catch bouncing emails. Recommended name (makes for less editing): subscriber_notify 2. For vB 3.0.3 (older versions below, steps 2a or 2b) I have yet to upgrade to 3.0.3, so this is contributed by ScottA: Quote:
2a. For vB3 gold Edit functions.php Find: PHP Code:
PHP Code:
2b. For older, vB3 beta versions Edit functions.php Find: PHP Code:
PHP Code:
3. Copy vBouncer.pl.txt to a directory on your server above apache level. vBouncer.pl.txt is attached below. Rename it to vBouncer.pl by typing: mv vBounver.pl.txt vBouncer.pl Make it executable by typing: chmod +x vBouncer.pl 4. Edit the configuation section of vBouncer.pl Code:
#! /usr/bin/perl -w # # USAGE: ./vBouncer.pl -bounce : to unsubscribe threads from members with bouncing email # ./vBouncer.pl : with no parameters to see (test) who will be unsubscribed # # Config: my $bouncelimit = 10; # how many bounced emails are allowed, before taking actions my $downgrade = 0; # What subscription level you will assign to bouncing members? # 0 = No email, member will check subscribed thread through usercp # 1 = Instant email, bad choice! # 2 = Daily # 3 = Weekly my $clearmailfile = 1; # delete the mail file for bounced email when done (only deletes when -bounce option is used) my $bouncefile = "/var/spool/mail/subscriber_notify"; # the path/to/bouncing emails file. "subscriber_notify is the email name, you need # to change it to the email name you chose for bouncing emails. my $db="database"; # mysql database name my $db_host="localhost"; # mysql host my $db_username="username"; # mysql username my $db_password="password"; # mysql password # end of config To run the script in test mode, type: ./vBounver.pl To run the script in bouncer mode, type: ./vBounver.pl -bouncer To clear the mail box, use: cat /dev/null > subscriber_notify (or set the option in the script to do it) Changes Feel free to modify and post changes here or as new hacks, no credir or permission required. I may eventually add some features when I have the time. Notes 1. The script assumes that Perl is installed @ /usr/bin/perl If you have Perl installed elsewhere, you just need to update the first line of the script with the cirrect path: #! /usr/bin/perl -w 2. You need to login to your server with a username that has write access to the mail spool, like a root/admin level user. 3. When run in test mode, ignore the warning "Use of uninitialized value in string eq at ./vBouncer.pl line 49" It just means you did not pass a parameter. Show Your Support
|
Comments |
#12
|
|||
|
|||
![]() Quote:
|
#13
|
|||
|
|||
![]() Quote:
|
#14
|
|||
|
|||
![]()
I love the idea of this hack, I am just worried about ticking off people who would loose threir subsriptions. I'm not sure this is even possible, but...
Instead of unsubscribing all the subscribed threads, would their be a way to temporarily move them into a usergroup called something like: Bad email address and have that usergroup recieve no e-mail? (besides account related e-mail, like lost password etc..) But keep the subcription info intact with no e-mail notification? And then have an option for them to update their e-mail address, once it is updated, have the script move their susbcription status back to previous usergroup? I hope that makes sense? Again, maybe this is not possible, but I think this would be a great addition if it was possible ![]() Thanks |
#15
|
|||
|
|||
![]()
I know it would be an easy convert. Especialy since I can script in Perl as well. I just dont really have the time right now to do it. Im working on several projects at once right now.
|
#16
|
|||
|
|||
![]() Quote:
|
#17
|
|||
|
|||
![]()
Tamarian,
OK, thanks for the clarification. |
#18
|
|||
|
|||
![]()
This is awesome and I plan to use it (with around 500 bounces tp me a day), however, i am kinda dumb...
Do I need to run the file on a regular basis? Can I set a cronjob for it? I am terrible at backing up the db, let alone running this... Also, if i have several domains on my server, does that pose a problem? i notice there is no domain on the end of the email address user in the script? Sorry for the q's, thanks for any help. Christian |
#19
|
||||
|
||||
![]()
I just realized I can't use this because my mail server is remote - the server does send the emails out, but return bounces go to another mail server.
|
#20
|
|||
|
|||
![]() Quote:
re: multiple domain: It should not be a problem, but if you have multiple vb forums, the script will only handle one of them, but it's possible to rename it and set it up for each forum. |
#21
|
|||
|
|||
![]() Quote:
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|