Email::AddressParser - RFC 2822 Address Parsing and Creation
use Email::AddressParser; my @addresses = Email::AddressParser->parse($line); my $address = Email::AddressParser->new(Tony => 'tony@localhost'); print $address->format;
This class is a near drop-in replacement for the regex parsing of Email::Address, which has serious issues for production use (exponential to infinite computation time in some cases). It uses code from Mark Crispin's c-client library to implement the parsing. The resulting parser is much more stable than the regex-based version of Email::Address.
Note, RFC2822 comments are removed by this version (you can pass them in, and you can ask for them, but they will always be empty).
my @addrs = Email::Address->parse( q[me@local, Tony <me@local>, "Tony" <me@local>] );
This method returns a list of
Email::Address objects it finds in the input string.
There are no comment nesting limitations on this method, though all comments will be ignored.
my $address = Email::Address->new(undef, 'tony@local'); my $address = Email::Address->new('tony kay', 'tony@local'); my $address = Email::Address->new(undef, 'tony@local', '(tony)');
Constructs and returns a new
Email::AddressParser object. Takes four positional arguments: phrase, email, and comment.
my $phrase = $address->phrase; $address->phrase( "Me oh my" );
Accessor for the phrase portion of an address.
Accessor for the address portion of an address.
my $comment = $address->comment; $address->comment( "(Work address)" );
Accessor for the comment portion of an address. Currently a no-op.
my $printable = $address->format;
Returns a properly formatted RFC 2822 address representing the object.
Parser by Mark Crispin. Perl integration by Anthony Kay <firstname.lastname@example.org>. Most documentation shamelessly borrowed from Email::Address.
All parsing code is Copyright (c) 1988-2006 University of Washington, under the Apache License 2.0. The Perl integration is licesened under the same terms as Perl itself.