########################################################################
############################
#- -- 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