Email::AddressParser - RFC 2822 Address Parsing and Creation


NAME

Email::AddressParser - RFC 2822 Address Parsing and Creation


SYNOPSIS

  use Email::AddressParser;
  my @addresses = Email::AddressParser->parse($line);
  my $address   = Email::AddressParser->new(Tony => 'tony@localhost');
  print $address->format;


VERSION

version 0.01


DESCRIPTION

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).

Class Methods

parse
  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.

new
  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.

Instance Methods


=over 4

=item phrase
  my $phrase = $address->phrase;
  $address->phrase( "Me oh my" );

Accessor for the phrase portion of an address.

address my $addr = $address->address; $addr->address( ``me@PROTECTED.com'' );
Accessor for the address portion of an address.

comment

  my $comment = $address->comment;
  $address->comment( "(Work address)" );

Accessor for the comment portion of an address. Currently a no-op.

format
  my $printable = $address->format;

Returns a properly formatted RFC 2822 address representing the object.


SEE ALSO

the Email::Address manpage.


AUTHOR

Parser by Mark Crispin. Perl integration by Anthony Kay <tkay@cs.uoregon.edu>. Most documentation shamelessly borrowed from the Email::Address manpage.


COPYRIGHT

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.

 Email::AddressParser - RFC 2822 Address Parsing and Creation