Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Mail::Address(3)      User Contributed Perl Documentation     Mail::Address(3)

       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.

       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

       o   no support for address groups, even not with	the semi-colon as
	   separator between addresses;

       o   limited support for escapes in phrases and comments.	 There are
	   cases where it can get wrong; and

       o   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 the maintainers of this code 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->new($from_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( $phrase, $address, [	$comment ] )
	   Create a new	"Mail::Address"	object which represents	an address
	   with	the elements given. In a message these 3 elements would	be
	   seen	like:



	    Mail::Address->new("Perl5 Porters",	"");

	   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


	    my @addr = Mail::Address->parse($line);

	   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.	This method is
	   called on the first address to be used; other specified addresses
	   will	be appended, separated by commas.

	   Return the phrase part of the object.

   Smart accessors
	   Return the address excluding	the user id and	'@'

	   Using the information contained within the object attempt to
	   identify what the person or groups name is.

	   Note: This function tries to	be smart with the "phrase" of the
	   email address, which	is probably a very bad idea.  Consider to use
	   phrase() itself.

	   Return the address excluding	the '@'	and the	mail domain

       This module is part of the MailTools distribution,

       The MailTools bundle was	developed by Graham Barr.  Later, Mark
       Overmeer	took over maintenance without commitment to further

       Mail::Cap by Gisle Aas <>.  Mail::Field::AddrList	by
       Peter Orbaek <>.  Mail::Mailer	and Mail::Send by Tim Bunce
       <>.  For other	contributors see ChangeLog.

       Copyrights 1995-2000 Graham Barr	<> and 2001-2017	Mark
       Overmeer	<>.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.  See

perl v5.32.0			  2019-05-21		      Mail::Address(3)


Want to link to this manual page? Use this URL:

home | help