Mail::Address extracts and manipulates email addresses from a message
header. It cannot be used to extract addresses from some random text.
You can use this module to create RFC822 compliant fields.
Although Mail::Address is a very popular subject for books, and is
used in many applications, it does a very poor job on the more complex
message fields. It does only handle simple address formats (which
covers about 95% of what can be found). Problems are with
no support for address groups, even not with the semi-colon as
separator between addresses
Limitted support for escapes in phrases and comments. There are
cases where it can get wrong.
You have to take care of most escaping when you create an address yourself:
Mail::Address does not do that for you.
Often requests are made to improve this situation, but this is not a
good idea, where it will break zillions of existing applications. If
you wish for a fully RFC2822 compliant implementation you may take a look
at the Mail::Message::Field::Full manpage, part of MailBox.
Example:
my $s = Mail::Message::Field::Full->parse($header);
# ref $s isa Mail::Message::Field::Addresses;
my @g = $s->groups; # all groups, at least one
# ref $g[0] isa Mail::Message::Field::AddrGroup;
my $ga = $g[0]->addresses; # group addresses
my @a = $s->addresses; # all addresses
# ref $a[0] isa Mail::Message::Field::Address;
Copyright (c) 2002-2005 Mark Overmeer, 1995-2001 Graham Barr. All rights
reserved. This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.