Merge branch 'master' of ssh://defaria.com/opt/git/clearscm
[clearscm.git] / maps / bin / checkaddress
1 #!/usr/bin/perl
2 ################################################################################
3 #
4 # File:         $RCSfile: checkaddress,v $
5 # Revision:     $Revision: 1.1 $
6 # Description:  Check an email address
7 # Author:       Andrew@DeFaria.com
8 # Created:      Mon Jan 16 20:25:32 PST 2006
9 # Modified:     $Date: 2013/06/12 14:05:47 $
10 # Language:     perl
11 #
12 # (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
13 #
14 ################################################################################
15 use strict;
16 use warnings;
17
18 use FindBin;
19
20 use lib $FindBin::Bin, '/opt/clearscm/lib';
21
22 use MAPS;
23 use Display;
24
25 error ("Must specify an email address to check", 1) 
26   if !$ARGV[0] or $ARGV[0] eq "";
27
28 foreach (@ARGV) {
29   my $sender = lc $_;
30
31   my ($status, $rule);
32
33   my $username = lc $ENV{USER};
34
35   my ($user, $domain) = $sender =~ /(.+)\@(.+)/;
36
37   unless ($user and $domain) {
38     error "Illegal email address $sender";
39
40     next;
41   } # unless
42
43   if ($domain eq "defaria.com" and $user ne $username) {
44     display "Nulllist - $sender is from this domain but is not from $username";
45     next;
46   } # if
47
48   ($status, $rule) = OnNulllist $sender;
49
50   if ($status) {
51     display "Sender $sender would be nulllist'ed\n$rule";
52   } else {
53     ($status, $rule) = OnBlacklist $sender;
54
55     if ($status) {
56       display "Sender $sender would be blacklist'ed\n$rule";
57     } else {
58       ($status, $rule) = OnWhitelist $sender;
59
60       if ($status) {
61         display "Sender $sender would be whitelist'ed\n$rule";
62       } else {
63         display "Sender $sender would be returned";
64       } # if
65     } # if
66   } # if
67 } # foreach