#!/usr/bin/perl -w
use Net::POP3;
# Connect to pop3 server
my $pop3 = Net::POP3->new("10.10.10.10") || die "Error : Couldn't log
+on to server";
# Login to pop3 server
my $Num_Message = $pop3->login("dummy", "dummy");
my $Messages = $pop3->list();
my ($MsgId, $MsgDate, $MsgFrom, $MsgTo, $MsgCc, $MsgSub);
my ($MsgAttach, $MsgSize, $MsgHeader, $MsgHeadFlg, $MsgBody);
foreach $MsgNo (keys %$Messages)
{
my $MsgContent = $pop3->get($MsgNo);
my $count = 0;
$MsgHeadFlg = 0;
$MsgBody = "";
print "Message No : $MsgNo\n";
$MsgSize = $pop3->list($MsgNo);
print "Message Size : $MsgSize Bytes\n";
# Process message data
while()
{
# Exit if last line of mail
if ($count >= scalar(@$MsgContent))
{
print "$MsgBody";
last;
}
# Check if end of mail header
if (@$MsgContent[$count] =~ /^\n/)
{
$MsgHeadFlg = 1;
}
# Proceed if message header not processed
if (not $MsgHeadFlg)
{
# Split the line
my @LineContent = split /: /, @$MsgContent[$count];
# Check Header Info
SWITCH:
{
# Get message date
$LineContent[0] =~ /Date/i && do
{
$MsgDate = $LineContent[1];
print "Date : $MsgDate";
last SWITCH;
};
# Get message id
$LineContent[0] =~ /Message-ID/i && do
{
$MsgId = $LineContent[1];
print "Message ID : $MsgId";
last SWITCH;
};
# Get message from
$LineContent[0] =~ /From/i && do
{
$MsgFrom = $LineContent[1];
print "From : $MsgFrom";
last SWITCH;
};
# Get message to
$LineContent[0] =~ /To/i && do
{
$MsgTo = $LineContent[1];
print "To : $MsgTo";
last SWITCH;
};
# Get message cc
$LineContent[0] =~ /Cc/i && do
{
$MsgCc = $LineContent[1];
print "Cc : $MsgCc";
last SWITCH;
};
# Get message subject
$LineContent[0] =~ /Subject/i && do
{
$MsgSub = $LineContent[1];
print "Subject : $MsgSub";
last SWITCH;
};
}
}
else
{
# Process message body
$MsgBody .= @$MsgContent[$count];
}
$count++;
}
}
# Disconnect from pop3 server
$pop3->quit();
|