I installed redemption and get this error
Win32::OLE(0.1709) error 0x80040154: "Class not registered" at test.pl line 19
eval {...} called at test.pl line 19
Can't call method "Items" on unblessed reference at test.pl line 22.
#!/usr/bin/perl -w
use strict;
use Win32::OLE;
use Win32::OLE::Variant;
use Win32::OLE::Const 'Microsoft Outlook';
# set up Outlook OLE
my $Outlook;
eval {$Outlook = Win32::OLE->GetActiveObject('Outlook.Application')};
die "Outlook not installed" if $@;
unless (defined $Outlook) {
$Outlook = Win32::OLE->new('Outlook.Application', sub {$_[0]->Quit
+;}) or die "Can't start Outlook: $!";
}
my $ol = Win32::OLE::Const->Load($Outlook);
my $namespace = $Outlook->GetNamespace("MAPI");
# select mailbox and folder
my $mailboxname = "Personal Folders"; # change this to the actual name
+ of your mailbox
my $foldername = 'Inbox'; # or whatever other folder you want to use
my $ofolder = $namespace->Folders($mailboxname)->Folders($foldername)
+|| die "Can't open folder Inbox: $!\n";
my $sfolder = new Win32::OLE("Redemption.MAPIFolder");
$sfolder->{'Item'} = $ofolder;
# process messages
my $n = $sfolder->Items->Count;
my $sitem = new Win32::OLE("Redemption.SafeMailItem");
for (my $i=$n; $i>0; $i--) {
$sitem->{'Item'} = $sfolder->Items($i);
print "Subject: ",$sitem->{'Subject'},"\n";
# show sender as insured SMTP address
my $sendaddrtype = $sitem->Fields(0xC1E001E); # hex key for SENDER
+_ADDRTYPE
my $senderemail;
if ($sendaddrtype eq 'EX') {
$senderemail = $sitem->{'Sender'}->Fields(0x39FE001E); # hex k
+ey for EMAIL
}
else {
$senderemail = $sitem->{'SenderEmailAddress'};
}
print "\tSender: $senderemail\n";
# show recipients' SMTP addresses
my $nrecip = $sitem->Recipients->Count;
for my $j (1..$nrecip) {
print "\tRecipient $j: ",$sitem->Recipients($j)->AddressEntry-
+>SMTPAddress,"\n";
}
}
|