Thread: Administrative and Maintenance Tools - EZ Bounced Email Management for Admins
View Single Post
  #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
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01173 seconds
  • Memory Usage 1,792KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete