########################################################################
############################

#- -- This program inspects the internet header of all Microsoft Outlook
(2002 SP-2)  messages in the user-defined "MyAccount" 

#--  directory to determine if the email was sent to
[EMAIL PROTECTED]   If this is not the case, then it is spam and

#--  the program puts the email in the "Deleted Items" folder.  If the
email was sent to [EMAIL PROTECTED] place

#-- the email in the MyAccount->Filtered folder.  This program assumes
Microsoft Outlook is running.  This program

#-- does not cause the Outlook Security Window to open, so nothing to
worry about. 

#-- Author - Eric C. Hansen, May 2004    [EMAIL PROTECTED]

########################################################################
############################

 

use Win32::OLE; 

use Win32::GuiTest;

use Win32::Clipboard;

 

  $OL                           =
Win32::OLE->GetActiveObject('Outlook.Application'); 

  $NameSpace            = $OL->GetNameSpace("MAPI");

  $Inbox                       = $NameSpace->GetDefaultFolder(6);
#-- inbox folder 

  $Deleted                   = $NameSpace->GetDefaultFolder(3);
#-- deleted items folder

  $Root                        = $Inbox->Parent();

  $MyAccount            = $Root->Folders("MyAccount");

  $MyAccountOK      = $MyAccount->Folders("Filtered");

  $Clip                          = Win32::Clipboard(); 

 

  @wins = Win32::GuiTest::FindWindowLike(0,"^Microsoft
Outlook",'mspim_wnd32');       #-- mspim_wnd32 is the class

  Win32::GuiTest::SetForegroundWindow($wins[0]);

  

  $cnt=$MyAccount->Items->Count;     #-- get a count of messages in
folder "MyAccount" 

  

   while ($cnt > 0) {

 

        $Clip->Empty();       #-- empty the clipboard

 

        $MyAccount->Items($cnt)->Display;       #-- display/open message
with index of $cnt in the MyAccount folder

        

        Win32::GuiTest::SendKeys("%Vp");
#-- open options dialog  ALT-V-p

        Win32::GuiTest::SendKeys("{TAB 6}");
#-- move down to internet header field 

        Win32::GuiTest::SendKeys("{APP} {DOWN 2} {ENTER}");       #--
put internet header in clipboard 

        Win32::GuiTest::SendKeys("{TAB}");
#-- move to Cancel Button 

        Win32::GuiTest::SendKeys("{ENTER}");
#-- press Cancel Button

        Win32::GuiTest::SendKeys("%{F4}");
#-- close message   ALT-F4

 

        undef $text;

        $text=$Clip->Get();                #-- get clipboard contents

        $text=~tr/A-Za-z.@/*/c;       #-- convert all but listed valid
characters to * 

        $text=~tr/*//d;                        #-- now delete asterisks

        $text=lc($text);                      #-- convert to lowercase

      

        # -- now check for our email address in the internet header text


        if ($text !~ /[EMAIL PROTECTED]/) {

           $MyAccount->Items($cnt)->Move($Deleted);                 #--
move message to "Deleted Items" folder       

        } else {

           $MyAccount->Items($cnt)->Move($MyAccountOK);    #-- move
message to "MyAccount->Filtered folder

        }

 

        $cnt--;

  }

 

 #--  end script

  

 

Reply via email to