################################################################################
#
# File: $RCSfile: checkaddress.cgi,v $
-# Revision: $Revision: 1.1 $
+# Revision: $Revision: 1.1 $
# Description: Check an email address
# Author: Andrew@DeFaria.com
# Created: Mon Jan 16 20:25:32 PST 2006
use FindBin;
$0 = $FindBin::Script;
-use lib $FindBin::Bin;
+use lib "$FindBin::Bin/../lib";
use MAPS;
-use CGI qw (:standard);
+use CGI qw(:standard);
# Get MAPSUser from cookie
my $userid;
if (param "user") {
- $userid = param "user";
+ $userid = param("user");
} else {
- $userid = cookie ("MAPSUser");
+ $userid = cookie("MAPSUser");
} # if
-my $sender = param ("sender");
+my $sender = param("sender");
-sub Heading {
+sub Heading() {
print
- header (-title => "MAPS: Check Address"),
+ header (-title => "MAPS: Check Address"),
start_html (-title => "MAPS: Check Address",
- -author => "Andrew\@DeFaria.com");
- print h3 {-align => "center",
- -class => "header"},
+ -author => "Andrew\@DeFaria.com");
+ print h3 {-align => "center",
+ -class => "header"},
"MAPS: Checking address $sender";
} # Heading
-sub Body {
- my ($status, $rule);
+sub Body() {
+ my ($onlist, $rule);
- ($status, $rule) = OnNulllist $sender;
- if ($status) {
- print div {-align => "center"},
- font {-color => "grey"},
- "Messages from", b ($sender), "will be", b ("discarded"), br, hr;
+ # Algorithm change: We now first check to see if the sender is not found
+ # in the message and skip it if so. Then we handle if we are the sender
+ # and that the from address is formatted properly. Spammers often use
+ # the senders email address (i.e. andrew@defaria.com) as their from address
+ # so we check "Andrew DeFaria <Andrew@DeFaria.com>", which they have never
+ # forged. This catches a lot of spam actually.
+ #
+ # Next we check to see if the sender is on our whitelist. If so then we let
+ # them in. This allows us to say whitelist josephrosenberg@hotmail.com while
+ # still nulllisting all of the other hotmail.com spammers.
+ #
+ # Next we process blacklisted people as they are also of high priority.
+ #
+ # Then we process nulllist people.
+ #
+ # Finally, we handle return processing
+ ($onlist, $rule) = OnWhitelist($sender, $userid, 0);
+
+ if ($onlist) {
+ print div {-align => "center"},
+ font {-color => "green"},
+ "Messages from", b ($sender), "will be", b ("delivered"), br, hr;
print $rule;
} else {
- ($status, $rule) = OnBlacklist $sender;
- if ($status) {
+ ($onlist, $rule) = OnBlacklist($sender, 0);
+
+ if ($onlist) {
print div {-align => "center"},
- font {-color => "black"},
- "Messages from", b ($sender), "will be", b ("blacklisted"), br, hr;
+ font {-color => "black"},
+ "Messages from", b ($sender), "will be", b ("blacklisted"), br, hr;
print $rule;
} else {
- ($status, $rule) = OnWhitelist $sender;
- if ($status) {
- print div {-align => "center"},
- font {-color => "green"},
- "Messages from", b ($sender), "will be", b ("delivered"), br, hr;
- print $rule;
+ ($onlist, $rule) = OnNulllist($sender, 0);
+
+ if ($onlist) {
+ print div {-align => "center"},
+ font {-color => "grey"},
+ "Messages from", b ($sender), "will be", b ("discarded"), br, hr;
+ print $rule;
} else {
- print div {-align => "center"},
- font {-color => "red"},
- "Messages from", b ($sender), "will be", b ("returned");
+ print div {-align => "center"},
+ font {-color => "red"},
+ "Messages from", b ($sender), "will be", b ("returned");
} # if
} # if
} # if
- print br div {-align => "center"},
- submit (-name => "submit",
- -value => "Close",
- -onClick => "window.close (self)");
+ print br div {-align => "center"},
+ submit(-name => "submit",
+ -value => "Close",
+ -onClick => "window.close (self)");
} # Body
-sub Footing {
+sub Footing() {
print end_html;
} # Footing
# Main
-SetContext $userid;
+SetContext($userid);
Heading;
Body;
Footing;