Current Path : /usr/local/lib/perl5/site_perl/5.8.9/Mail/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/lib/perl5/site_perl/5.8.9/Mail/Field.pod |
=head1 NAME Mail::Field - Base class for manipulation of mail header fields =head1 INHERITANCE Mail::Field is extended by Mail::Field::AddrList Mail::Field::Date Mail::Field::Generic =head1 SYNOPSIS use Mail::Field; my $field = Mail::Field->new('Subject', 'some subject text'); my $field = Mail::Field->new(Subject => 'some subject text'); print $field->tag,": ",$field->stringify,"\n"; my $field = Mail::Field->subject('some subject text'); =head1 DESCRIPTION C<Mail::Field> creates and manipulates fields in MIME headers, collected within a L<Mail::Header|Mail::Header> object. Different field types have their own sub-class (extension), defining additional useful accessors to the field content. People are invited to merge their implementation to special fields into MailTools, to maintain a consistent set of packages and documentation. =head1 METHODS =head2 Constructors Mail::Field (and it's sub-classes) define several methods which return new objects. These can all be categorized as constructor. Mail::Field-E<gt>B<combine>(FIELDS) =over 4 Take a LIST of C<Mail::Field> objects (which should all be of the same sub-class) and create a new object in that same class. =back Mail::Field-E<gt>B<extract>(TAG, HEAD [, INDEX ]) =over 4 Takes as arguments the tag name, a C<Mail::Head> object and optionally an index. If the index argument is given then C<extract> will retrieve the given tag from the C<Mail::Head> object and create a new C<Mail::Field> based object. I<undef> will be returned in the field does not exist. If the index argument is not given the the result depends on the context in which C<extract> is called. If called in a scalar context the result will be as if C<extract> was called with an index value of zero. If called in an array context then all tags will be retrieved and a list of C<Mail::Field> objects will be returned. =back Mail::Field-E<gt>B<new>(TAG [, STRING | OPTIONS]) =over 4 Create an object in the class which defines the field specified by the TAG argument. =back =head2 "Fake" constructors $obj-E<gt>B<create>(OPTIONS) =over 4 This constructor is used internally with preprocessed field information. When called on an existing object, its original content will get replaced. =back $obj-E<gt>B<parse> =over 4 Parse a field line. =back =head2 Accessors $obj-E<gt>B<set>(OPTIONS) =over 4 Change the settings (the content, but then smart) of this field. =back $obj-E<gt>B<stringify> =over 4 Returns the field as a string. =back $obj-E<gt>B<tag> Mail::Field-E<gt>B<tag> =over 4 Return the tag (in the correct case) for this item. Well, actually any casing is OK, because the field tags are treated case-insentitive; however people have some preferences. =back =head2 Smart accessors $obj-E<gt>B<text>([STRING]) =over 4 Without arguments, the field is returned as L<stringify()|Mail::Field/"Accessors"> does. Otherwise, the STRING is parsed with L<parse()|Mail::Field/""Fake" constructors"> to replace the object's content. It is more clear to call either L<stringify()|Mail::Field/"Accessors"> or L<parse()|Mail::Field/""Fake" constructors"> directly, because this method does not add additional processing. =back =head1 DETAILS =head2 SUB-CLASS PACKAGE NAMES All sub-classes should be called Mail::Field::I<name> where I<name> is derived from the tag using these rules. =over 4 =item * Consider a tag as being made up of elements separated by '-' =item * Convert all characters to lowercase except the first in each element, which should be uppercase. =item * I<name> is then created from these elements by using the first N characters from each element. =item * N is calculated by using the formula :- int((7 + #elements) / #elements) =item * I<name> is then limited to a maximum of 8 characters, keeping the first 8 characters. =back For an example of this take a look at the definition of the C<_header_pkg_name()> subroutine in C<Mail::Field> =head1 DIAGNOSTICS Error: Undefined subroutine <method> called =over 4 Mail::Field objects use autoloading to compile new functionality. Apparently, the mehod called is not implemented for the specific class of the field object. =back =head1 SEE ALSO This module is part of the MailTools distribution, F<http://perl.overmeer.net/mailtools/>. =head1 AUTHORS The MailTools bundle was developed by Graham Barr. Later, Mark Overmeer took over maintenance without commitment to further development. Mail::Cap by Gisle Aas E<lt>aas@oslonett.noE<gt>. Mail::Field::AddrList by Peter Orbaek E<lt>poe@cit.dkE<gt>. Mail::Mailer and Mail::Send by Tim Bunce E<lt>Tim.Bunce@ig.co.ukE<gt>. For other contributors see ChangeLog. =head1 LICENSE Copyrights 1995-2000 Graham Barr E<lt>gbarr@pobox.comE<gt> and 2001-2007 Mark Overmeer E<lt>perl@overmeer.netE<gt>. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See F<http://www.perl.com/perl/misc/Artistic.html>