Mail::Address - Parse mail addresses
use Mail::Address; my @addrs = Mail::Address->parse($line); foreach $addr (@addrs) { print $addr->format,"\n"; }
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.
Mail::Address
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 Mail::Message::Field::Full, 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;
Mail::Address->new("Perl5 Porters", "perl5-porters@africa.nicoh.com");
Create a new Mail::Address object which represents an address with the elements given. In a message these 3 elements would be seen like:
PHRASE <ADDRESS> (COMMENT) ADDRESS (COMMENT)
Mail::Address->parse($line);
Parse the given line a return a list of extracted Mail::Address objects. The line would normally be one taken from a To,Cc or Bcc line in a message
Return the phrase part of the object.
Return the address part of the object.
Return the comment part of the object
Return a string representing the address in a suitable form to be placed on a To,Cc or Bcc line of a message
Using the information contained within the object attempt to identify what the person or groups name is
Return the address excluding the user id and '@'
Return the address excluding the '@' and the mail domain
Unimplemented yet but should return the UUCP path for the message
Unimplemented yet but should return the UUCP canon for the message
Graham Barr. Maintained by Mark Overmeer <mailtools@overmeer.net>
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.
To install Mail::Cap, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mail::Cap
CPAN shell
perl -MCPAN -e shell install Mail::Cap
For more information on module installation, please visit the detailed CPAN module installation guide.