#!/usr/bin/perl # # SUBPROBE.PL : Script to send individual e-mails to addresses on a mailing # list in order to weed out bouncing addresses that cannot # otherwise be tracked down (usually due to vanity forwards # and utterly useless bounce data from target domains). # VERSION : 2.4.1 (01/23/2000) # AUTHOR : Cancer Omega # DEDICATED TO: Satrina. She 0wnz m3. R00ted me on the heart port. # # # Change the following to suit your system's specifications. # $sys_name = "Attrition"; # Your system's 'proper' name. $sys_id = "attrition.org"; # Your domain name as used in e-mail. $bounce_addy = "jericho+bounce"; # Address you want bounces to go to. $mailprog = "/usr/lib/sendmail"; # Sendmail location. $i = 0; # Initialize count. $bc = 0; # Initialize blank line count. # # Check variable - stop and gripe if not provided. # if ($ARGV[0] eq "") { print "\nERROR - Missing variables.\n"; print "USE: ./subprobe.pl \n\n"; exit; } # # Gather file stats and establish time stamps. # $date_start_english=`/bin/date`; $date_start_system=time(); chomp $date_start_english; print "Address Bounce Probe started on: $date_start_english\n\n"; chomp ($ARGV[0]); $filecount=`/bin/cat $ARGV[0] |/usr/bin/wc -l`; $filecount =~ s/\s+//g; # # Open mailing list address file, parse addresses, spew. # open (ADDRESSES,"$ARGV[0]"); while () { chomp ($_); $line = $_; $list = uc($ARGV[0]); $line =~ s/\s+//g; if ($line ne "") { open(MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n"; print MAIL < .10 && $pct < .19 && $s1 != 1) { print "$pt1"."1"."$pt2"; $s1 = 1; } elsif ($pct > .20 && $pct < .29 && $s2 != 1) { print "$pt1"."2"."$pt2"; $s2 = 1; } elsif ($pct > .30 && $pct < .39 && $s3 != 1) { print "$pt1"."3"."$pt2"; $s3 = 1; } elsif ($pct > .40 && $pct < .49 && $s4 != 1) { print "$pt1"."4"."$pt2"; $s4 = 1; } elsif ($pct > .50 && $pct < .59 && $s5 != 1) { print "$pt1"."5"."$pt2"; $s5 = 1; } elsif ($pct > .60 && $pct < .69 && $s6 != 1) { print "$pt1"."6"."$pt2"; $s6 = 1; } elsif ($pct > .70 && $pct < .79 && $s7 != 1) { print "$pt1"."7"."$pt2"; $s7 = 1; } elsif ($pct > .80 && $pct < .89 && $s8 != 1) { print "$pt1"."8"."$pt2"; $s8 = 1; } elsif ($pct > .90 && $pct < .99 && $s9 != 1) { print "$pt1"."9"."$pt2"; $s9 = 1; } } close (ADDRESSES); # # Prepare and print stats for end of run. # $date_end_english=`/bin/date`; $date_end_system=time(); chomp $date_end_english; print "\nProcess status: Finished\n"; print "Address count : $filecount\n"; print "Blank lines : $bc\n\n"; print "Start time : $date_start_english\n"; print "Finish time : $date_end_english\n"; $ess = $date_end_system - $date_start_system; $secs = $ess % 60; $ess = ($ess - $secs) / 60; $mins = $ess % 60; $ess = ($ess - $mins) / 60; $hours = $ess % 24; $ess = ($ess - $hours) / 24; $days = $ess % 7; print "Elapsed time : $days days, $hours hours, $mins minutes, $secs seconds.\n\n";