Go Back   vb.org Archive > vBulletin Modifications > vBulletin 3.8 Modifications > vBulletin 3.8 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
EZ Bounced Email Management for Admins Details »»
EZ Bounced Email Management for Admins
Version: 1.11, by Antivirus Antivirus is offline
Developer Last Online: Aug 2014 Show Printable Version Email this Page

Category: Administrative and Maintenance Tools - Version: 3.6.x Rating:
Released: 02-08-2007 Last Update: 07-13-2008 Installs: 502
DB Changes Uses Plugins
Additional Files  
No support by the author.

DESCRIPTION:
This mod will insert a special EZbounce link into the header of all emails sent from your forums. In the event any email bounces back to you, you simply click the EZbounce link and the Ezbounce script launches, which will modify the bouncing members settings to prevent further bouncing emails. It will also send that member a PM asking them to update their email address.

This modification is known to work with versions as high as 3.8.x


FEATURES:
  • Will not modify settings for Admins, Supermods, or Moderators if their email bounces
  • (if turned on) Bouncing member is moved to whatever usergroup you set in AdminCP EZbounce Settings
  • Updates bouncing member's "Receive Email from Administrators" setting to NO
  • Updates bouncing member's "Receive Email Notification of New Private Messages" setting to NO
  • Updates bouncing member's "Receive Email from Other Members" setting to NO
  • Remove email notification for all of bouncing member's subscribed THREADS
  • Remove email notification for all of bouncing member's subscribed FORUMS
  • Turns on Popup Notification of new Private Messages for bouncing member
  • PM is sent to Member notifying them of bounced email & asking them to update email address
  • (if turned on) When member updates & confirms their new email, they are returned to original usergroup.

Now, the next time you send a newsletter from your AdminCP, (so long as you only send emails to members whom have "Receive Email From Administrators" set to "Yes") you will no longer receive a bounced email from this member (because they are no longer being sent).

And also, if you created a new usergroup such as "Bounced Members" and set this usergroupid in this hack's settings, now the members that have bounced can be pruned, sent reminder emails, whateveryou want to do with them!


WHAT IF A MEMBER DECIDED TO CLICK ON THE LINK IN THE EMAIL HEADER?
Most email clients don't show the email's headers by default, however in the event a member is slick enough to view their header and they click on this mysterious link, they will simply receive a no permission message since they're unallowed to log in to the AdminCP.


ZIP FILE CONTENTS:
1 Product (2 plugins, a couple phrases & installcode which adds 1 colum to user table)
1 File


HOW TO VIEW FULL EMAIL HEADERS:
You might need to configure your email client to view full email headers in order to see the EzBounce link. There's detailed instructions on how to do this for the most popular email clients here.


CHANGELOG:
#> 1.11 - released on 7/6/2008:
Fixed bug reported in post #583

#> 1.10 - released on 12/18/2007:
Added when bouncing member is managed for bouncing, their "Pop Up a Notification Box When New PM Is Received" setting is turned on before the notification PM is sent, to better ensure they are notified to update their email address.
Bought the new CD entitled Sleaze Freak by Scum Of The Earth on Amazon.com

#> 1.9 - released on 9/22/2007:
Added when bouncing member is managed for bouncing, their "Pop Up a Notification Box When New PM Is Received" setting is turned on before the notification PM is sent, to better ensure they are notified to update their email address.
Modified the way old usergroupid is restored so methos is more compatible with other installed mods.
Optimized some queries in ezbounce.php and plugin codes.

#> 1.8 - released on 6/1/2007:
Bug fix - fixed array_merge error for those running php 5.

#> 1.7 - released on 5/8/2007:
Bug fix - fixed bug where old usergroup was incorrectly being restored.

#> 1.6 - released on 4/26/2007:
Added protective measure for Admins, Supermods, or Mods who's email may have bounced. this makes sure their usergroup and settings are not modified

even if their email bounces.
When bouncing member is managed for bouncing, their "Receive Email Notification of New Private Messages" is now set to NO.
When bouncing member is managed for bouncing, their "Receive Email from Other Members" is now set to NO.
When bouncing member is managed for bouncing, email notification is turned OFF for all of bouncing user's subscribed threads.
When bouncing member is managed for bouncing, email notification is turned OFF for all of bouncing user's subscribed forums.

#> 1.5 - released on 2/17/2007:
Added option in Settings which allows admin to insert the EZbounce link into outgoing email's message body (for email clients which make it difficult to show

email headers or don't properly parse html links when displaying email headers.
Fixed bug where original usergroupid was being erased in the event admin processed bounced more than once for same member

#> 1.4 - released on 2/17/2007:
Fixed bug - PM is now sent regardless of whether or not bouncing member had "Enable Private Messaging" turned off in UserCP.
Fixed bug - Usergroup is now properly reset to what it was before member was managed for bouncing

#> 1.3 - released on 2/15/2007:
New setting in AdminCP which gives option to move bouncing members into any usergroup of Admin's choice
If member had previously bounced, and they update their email, they are moved back to their original usergroup

#> 1.2 - released on 2/10/2007:
Bouncing members are now handled by setting their preference to receive admin emails to "no"
Sends PM to member notifying them email bounced
If / when member updates his/her email their preference to receive admin emails is reset to "yes"

#> 1.0 - released on 2/8/2007
Original release



If you like this hack, please click Nominate for MOTM

Download Now

File Type: zip EZ Bounced Email Management_v111.zip (7.5 KB, 1073 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
TAIFUN_T

Comments
  #702  
Old 08-18-2010, 08:00 PM
djbaxter djbaxter is offline
 
Join Date: Aug 2006
Location: Ottawa, Canada
Posts: 2,601
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks! :up:
Reply With Quote
  #703  
Old 08-19-2010, 01:55 AM
Alfa1's Avatar
Alfa1 Alfa1 is offline
 
Join Date: Dec 2005
Location: Netherlands
Posts: 3,537
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Antivirus View Post
this permission check is done in the ezbounce.php file in the following code:

PHP Code:
// ######################## CHECK ADMIN PERMISSIONS #######################
if (!can_administer('canadminsettings'))
{
    
print_cp_no_permission();

If you want to change how this condition is evaluated, simply change the conditional within the if() clause.
Do you know what the parameter is for can administer users? canadminusers ?
Reply With Quote
  #704  
Old 09-21-2010, 08:50 PM
HansiB HansiB is offline
 
Join Date: May 2003
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am testing this plugin on my 4.x board and it looks like it works as it should.

However, my board is 10 years old and have some 40.000 members, and bounces thousands of them.

Clicking the ezbounce link manually is not my cup of tea.

So I started looking at ways to automate this somewhat.

First, i use my email client (thunderbird) and access the bounced emails and choose the bounces that indicate unused email adresses more than just out of office replies and such. I do a "save as" and get a directory full of .EML files.

I remember using a unix tool called AWK many many years ago, so i downloaded gnu awk for windows and did a quick read of the documentation.

calling gawk -f bounce.awk *.eml from a command window give me an output like

X-EZbouncer: http://myforumurl.something/admincp/...ce.php?u=77777
X-EZbouncer: http://myforumurl.something/admincp/...ce.php?u=88888
X-EZbouncer: http://myforumurl.something/admincp/...ce.php?u=99999

...etc...etc...etc hundreds of lines like that...



bounce.awk contain

#!/bin/awk -f
{
# Loook for the bounce link
if ($0 ~ /X-EZbouncer/) {
printf("%s\n",$0)
}
}

and it is easy to add to the awk "program" so it will only output the URL behind EZbouncer.

EDIT: Actually, changing printf("%s\n",$0) to printf("%s\n",$2) made awk output just the url, not the X-EZBOUNCER text.

Next, to automatically "click" the links, I could easily make a call to make windows open the link in any browser, but with more than a few dozen links that would probably crash the browser and/or windows.

So i looked for alternatives and found cURL and wget.

Decided to start to learn cURL, googled and found PHP code calling the library version of cURL that is doing some of the stuff that needs to be done...logging in to vBulletin...need to be converted to command line arguments and changed a bit i think to login to the admincp instead of to the main forum page, but when that is done the easy part is to open the ezbounce.php

<?php
/********************
* cURL Tutorial By Affix
* Login to a vB forum
*********************/

function vBulletinLogin($user, $pass)
{
$md5Pass = md5($pass);
$data = "do=login&url=%2Findex.php&vb_login_md5password=$m d5Pass&vb_login_username=$user&cookieuser=1";

$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, "h**p://forum.codecall.net/login.php?do=login"); // replace ** with tt
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt ($ch, CURLOPT_TIMEOUT, '10');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/codecall_$user.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/codecall_$user.txt");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);

curl_close($ch);

$pos = strpos($store, "Thank you for Logging in");
if($pos === FALSE)
{
RETURN 0;
}
else
{
RETURN 1;
}
}

if(vBulletinLogin("username","password"))
{
echo "Logged In";
}
else
{
echo "Failed to Login check User / Pass";
}
?>

However, now I am getting too tired to learn yet another command line tool. Hopefully, when I get back here in 12 hours someone of the script gurus on this board have already posted some elegant scripts that I can use right away. Otherwise I hope to solve this myself and post some ugly scripts you all can use.

It seems you need to use MD5 encoding for the password, and maybe also for the login name. Just google on MD5 and you will find pages that will calculate MD5 from any string you enter, then just use the result with the parameters.

This is how far I have come with the curl command line:

curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --cookie-jar c:\cjar.txt --data

Well, it is a start :-)

Need to sleep now...

oh, maybe one simpler solution might be to remove the need to login to run the ezbounce.php script? And of course renaming it to something like 987jhjkh3jkhm?djjkhkj3h.php and removing it from the server when not using it.
Reply With Quote
  #705  
Old 09-21-2010, 09:44 PM
Alfa1's Avatar
Alfa1 Alfa1 is offline
 
Join Date: Dec 2005
Location: Netherlands
Posts: 3,537
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm working with a dev on a complete automation.

Clicking all the links will cause errors 'inbox full' and other trivial reports to deactivate the related account, which will cause a mass of support requests. A script needs to scan each email for every possible error phrase, evaluate it according to settings and then handle it appropriately. Spam doesnt make it any easier, as some virus spam disguises as bounced mail. And then there is BS like bluebottle.

Forget logging into adminCP. Running a cron seems much better.

IB will also add bounce management to vb4, though its likely to take some time as its complex matter.
Reply With Quote
  #706  
Old 09-22-2010, 12:19 AM
djbaxter djbaxter is offline
 
Join Date: Aug 2006
Location: Ottawa, Canada
Posts: 2,601
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Alfa1 View Post
Clicking all the links will cause errors 'inbox full' and other trivial reports to deactivate the related account, which will cause a mass of support requests.
Not to mention the frequent "Mailbox not available" bounces from Hotmail, AOL, and Rogers.com, 90% of the time which means only that their mail servers are having issues and there's nothing wrong with the email address.

I get that sometimes from sending an email to myself at rogers.com or hotmail.
Reply With Quote
  #707  
Old 09-22-2010, 05:02 AM
HansiB HansiB is offline
 
Join Date: May 2003
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Alfa1 View Post
I'm working with a dev on a complete automation.

Clicking all the links will cause errors 'inbox full' and other trivial reports to deactivate the related account, which will cause a mass of support requests.

IB will also add bounce management to vb4, though its likely to take some time as its complex matter.
Quote:
Originally Posted by djbaxter View Post
Not to mention the frequent "Mailbox not available" bounces from Hotmail, AOL, and Rogers.com, 90% of the time which means only that their mail servers are having issues and there's nothing wrong with the email address.
While waiting for those wonderful automated solutions by devs / vbulletin 4.1 I will be much happier doing it this way, by deleting obviously "temporary" bounces and spam emails from my bounce folder and then extracting the ezbounce lines like described in my first post. All the alternatives is more manual labor. And I really need to get this done.


Quote:
Originally Posted by Alfa1 View Post
Forget logging into adminCP. Running a cron seems much better.
Seems like a better idea, and probably much simpler! Need to look into how the vbulletin cron function does its thing. Any hints on how to take the list of ezbounce.php urls and make the calls with cron? Dont mind doing some manual editing steps or adjusting the awk script so i just get a list of user ids.

Edit:

Found this tutorial

http://www.vbskinstudio.com/forum/th...basic-cron-job.

Seems easy enough, probably just need to hack the ezbounce.php to do what i want to do and put it in the cron list.
Reply With Quote
  #708  
Old 09-22-2010, 08:51 AM
Alfa1's Avatar
Alfa1 Alfa1 is offline
 
Join Date: Dec 2005
Location: Netherlands
Posts: 3,537
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

We are letting a script find either the userID or the email and use that find the account. Then apply the same changes to the account as EZbounce does. I did find the need for protected groups, as I do not want staff accounts to be deactivated. They receive a PM listing the exact problem(error, number of bounces) instead. (maximum once a week)
Dont know if this is of any help to you.
Reply With Quote
  #709  
Old 09-24-2010, 02:46 PM
HansiB HansiB is offline
 
Join Date: May 2003
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Alfa1 View Post
We are letting a script find either the userID or the email and use that find the account. Then apply the same changes to the account as EZbounce does. I did find the need for protected groups, as I do not want staff accounts to be deactivated. They receive a PM listing the exact problem(error, number of bounces) instead. (maximum once a week)
Dont know if this is of any help to you.
Well if you have a script to share, the beer is on me :-)
Reply With Quote
  #710  
Old 09-25-2010, 09:41 AM
Alfa1's Avatar
Alfa1 Alfa1 is offline
 
Join Date: Dec 2005
Location: Netherlands
Posts: 3,537
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yeah, its complex and we keep hitting new road blocks, so will take some time. Sorry for taking this thread off topic.
Reply With Quote
  #711  
Old 10-08-2010, 12:10 AM
Alfa1's Avatar
Alfa1 Alfa1 is offline
 
Join Date: Dec 2005
Location: Netherlands
Posts: 3,537
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

EZ bounce has this function:
  • Updates bouncing member's "Receive Email from Administrators" setting to NO
At first glance this looks very logical, because we do not want to send admin email to accounts that do not have working email. But as we are already moving those members to a separate usergroup (like awaiting email activation), I see no chance of this anyway.

AntiVirus: could you please explain your line of reason behind this function?

Am I overseeing something important or is this setting superfluous?
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 02:53 PM.


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.05489 seconds
  • Memory Usage 2,369KB
  • Queries Executed 26 (?)
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_php
  • (6)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (1)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (1)postbit_attachment
  • (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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete