man Mail::Identity () - an e-mail role

NAME

Mail::Identity - an e-mail role

INHERITANCE

 Mail::Identity
   is a User::Identity::Item

SYNOPSIS

 use User::Identity;
 use Mail::Identity;
 my $me   = User::Identity->new(...);
 my $addr = Mail::Identity->new(address => 'x@y');
 $me->add(email => $addr);

 # Simpler

 use User::Identity;
 my $me   = User::Identity->new(...);
 my $addr = $me->add(email => 'x@y');
 my $addr = $me->add( email => 'home'
                    , address => 'x@y');

 # Conversion
 my $ma   = Mail::Address->new(...);
 my $mi   = Mail::Identity->coerce($ma);

DESCRIPTION

The CWMail::Identity object contains the description of role played by a human when sending e-mail. Most people have more than one role these days: for instance, a private and a company role with different e-mail addresses.

An CWMail::Identity object combines an e-mail address, user description (phrase), a signature, pgp-key, and so on. All fields are optional, and some fields are smart. One such set of data represents one role. CWMail::Identity is therefore the smart cousine of the Mail::Address object.

METHODS

Constructors

$obj->from(OBJECT) Convert an OBJECT into a CWMail::Identity. On the moment, you can specify Mail::Address and User::Identity objects. In the former case, a new CWMail::Identity is created containing the same information. In the latter, the first address of the user is picked and returned.

Mail::Identity->new([NAME], OPTIONS)

 Option        Defined in       Default                                 
 address                        <username@domain or name>               
 charset                        <user's charset>                        
 comment                        <user's fullname if phrase is different>
 description   L<User::Identity::Item>  undef                                   
 domain                         <from email or localhost>               
 language                       <from user>                             
 location                       <random user's location>                
 name          L<User::Identity::Item>  <phrase or user's fullName>             
 organization                   <location's organization>               
 parent        L<User::Identity::Item>  C<undef>                                
 pgp_key                        undef                                   
 phrase                         <user's fullName>                       
 signature                      undef                                   
 username                       <from address or user's nickname>
. address STRING The e-mail address is constructed from the username/domain, but when both do not exist, the name is taken. . charset STRING . comment STRING . description STRING . domain STRING . language STRING . location NAME|OBJECT The user's location which relates to this mail identity. This can be specified as location name (which will be looked-up when needed), or as User::Identity::Location object. . name STRING . organization STRING Usually defined for e-mail addresses which are used by a company or other organization, but less common for personal addresses. This value will be used to fill the CWOrganization header field of messages. . parent OBJECT . pgp_key STRING|FILENAME . phrase STRING . signature STRING . username STRING

Attributes

$obj->address Returns the e-mail address for this role. If none was specified, it will be constructed from the username and domain. If those are not present as well, then the name() is used when it contains a CW@, else the user's nickname is taken.

$obj->charset Returns the character set used in comment and phrase. When set to CWundef, the strings (are already encoded to) contain only ASCII characters. This defaults to the value of the user's charset, if a user is defined.

$obj->comment([STRING]) E-mail address -when included in message MIME headers- can contain a comment. The RFCs advice not to store useful information in these comments, but it you really want to, you can do it. The comment defaults to the user's fullname if the phrase is not the fullname and there is a user defined. Comments will be enclosed in parenthesis when used. Parenthesis (matching) or non-matching) which are already in the string will carefully escaped when needed. You do not need to worry.

$obj->description See Attributes in User::Identity::Item

$obj->domain The domain is the part of the e-mail address after the CW@-sign. When this is not defined, it can be deducted from the email address (see address()). If nothing is known, CWlocalhost is returned.

$obj->language Returns the language which is used for the description fields of this e-mail address, which defaults to the user's language.

$obj->location Returns the object which describes to which location this mail address relates. The location may be used to find the name of the organization involved, or to create a signature. If no location is specified, but a user is defined which has locations, one of those is randomly chosen.

$obj->name([NEWNAME]) See Attributes in User::Identity::Item

$obj->organization Returns the organization which relates to this e-mail identity. If not explicitly specified, it is tried to be found via the location.

$obj->phrase The phrase is used in an e-mail address to explain who is sending the message. This usually is the fullname (the user's fullname is used by default), description of your function (Webmaster), or any other text. When an email string is produced, the phase will be quoted if needed. Quotes which are within the string will automatically be escaped, so you do no need to worry: input cannot break the outcome!

$obj->username Returns the username of this e-mail address. If none is specified, first it is tried to extract it from the specified e-mail address. If there is also no username in the e-mail address, the user identity's nickname is taken.

Collections

$obj->add(COLLECTION, ROLE) See Collections in User::Identity::Item

$obj->addCollection(OBJECT | ([TYPE], OPTIONS)) See Collections in User::Identity::Item

$obj->collection(NAME) See Collections in User::Identity::Item

$obj->find(COLLECTION, ROLE) See Collections in User::Identity::Item

$obj->parent([PARENT]) See Collections in User::Identity::Item

$obj->removeCollection(OBJECT|NAME) See Collections in User::Identity::Item

$obj->type

Mail::Identity->type See Collections in User::Identity::Item

$obj->user See Collections in User::Identity::Item

DIAGNOSTICS

Error: CW$object is not a collection.

The first argument is an object, but not of a class which extends User::Identity::Collection.

Error: Cannot load collection module for CW$type ($class).

Either the specified CW$type does not exist, or that module named CW$class returns compilation errors. If the type as specified in the warning is not the name of a package, you specified a nickname which was not defined. Maybe you forgot the 'require' the package which defines the nickname.

Error: Creation of a collection via CW$class failed.

The CW$class did compile, but it was not possible to create an object of that class using the options you specified.

Error: Don't know what type of collection you want to add.

If you add a collection, it must either by a collection object or a list of options which can be used to create a collection object. In the latter case, the type of collection must be specified.

Warning: No collection CW$name

The collection with CW$name does not exist and can not be created.

REFERENCES

See the User::Identity website at <http://perl.overmeer.net/userid/> for more details.

COPYRIGHTS

User::Identity version 0.90. Written by Mark Overmeer (mark@overmeer.net). See the ChangeLog for other contributors.

Copyright (c) 2003 by the author(s). All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.