When we discuss receiving
mail in this section, we’re not going to be speaking of
fetching mail. Transferring mail from one
machine to another is not particularly interesting.
Mail::POP3Client by Sean Dowd and
Mail::Cclient by Malcolm Beattie can easily
perform the necessary POP (Post Office Protocol) or IMAP (Internet
Message Access Protocol) mail transfers for you. It is more
instructive to look at what to do with this mail once it has arrived,
and that’s where we’ll focus our
Let’s start with the basics and look at the tools available for
the dissection of both a single mail message and an entire mailbox.
For the first topic, we will again turn to Graham Barr’s
MailTools package, this time to use the
Dissecting a Single Message
Mail::Header modules offer a convenient way to
slice and dice the headers of an RFC822-compliant mail message.
RFC822 dictates the format of a mail message, including the names of
the acceptable header lines and their formats.
Mail::Internet, you first feed it an open
filehandle to a message file or a reference to an array that already
holds the lines of a message:
use Mail::Internet; $messagefile = "mail"; open(MESSAGE,"$messagefile") or die "Unable to open $messagefile:$!\n"; $message = new Mail::Internet \*MESSAGE; close(MESSAGE);
If we want to parse a message arriving in a stream of input (i.e., piped to us on our standard input), we could do this: