diff options
Diffstat (limited to 'cpan/lib/Mail/Field')
| -rw-r--r-- | cpan/lib/Mail/Field/AddrList.pm | 118 | ||||
| -rw-r--r-- | cpan/lib/Mail/Field/AddrList.pod | 175 | ||||
| -rw-r--r-- | cpan/lib/Mail/Field/Date.pm | 92 | ||||
| -rw-r--r-- | cpan/lib/Mail/Field/Date.pod | 152 | ||||
| -rw-r--r-- | cpan/lib/Mail/Field/Generic.pm | 33 | ||||
| -rw-r--r-- | cpan/lib/Mail/Field/Generic.pod | 147 |
6 files changed, 583 insertions, 134 deletions
diff --git a/cpan/lib/Mail/Field/AddrList.pm b/cpan/lib/Mail/Field/AddrList.pm index 950385c4..3887b87e 100644 --- a/cpan/lib/Mail/Field/AddrList.pm +++ b/cpan/lib/Mail/Field/AddrList.pm @@ -1,106 +1,66 @@ -package Mail::Field::AddrList; - -=head1 NAME - -Mail::Field::AddrList - object representation of e-mail address lists - -=head1 DESCRIPTION - -I<Don't use this class directly!> Instead ask Mail::Field for new -instances based on the field name! - -=head1 SYNOPSIS - - use Mail::Field::AddrList; - - $to = Mail::Field->new('To'); - $from = Mail::Field->new('From', 'poe@daimi.aau.dk (Peter Orbaek)'); - - $from->create('foo@bar.com' => 'Mr. Foo', poe => 'Peter'); - $from->parse('foo@bar.com (Mr Foo), Peter Orbaek <poe>'); - - # make a RFC822 header string - print $from->stringify(),"\n"; - - # extract e-mail addresses and names - @addresses = $from->addresses(); - @names = $from->names(); - - # adjoin a new address to the list - $from->set_address('foo@bar.com', 'Mr. Foo'); - -=head1 NOTES - -Defines parsing and formatting according to RFC822, of the following fields: -To, From, Cc, Reply-To and Sender. - -=head1 AUTHOR +# Copyrights 1995-2017 by [Mark Overmeer <perl@overmeer.net>]. +# For other contributors see ChangeLog. +# See the manual pages for details on the licensing terms. +# Pod stripped from pm file by OODoc 2.02. +use strict; -Peter Orbaek <poe@cit.dk> 26-Feb-97 -Modified by Graham Barr <gbarr@pobox.com> -Maintained by Mark Overmeer <mailtools@overmeer.net> +package Mail::Field::AddrList; +use vars '$VERSION'; +$VERSION = '2.19'; -=cut +use base 'Mail::Field'; -use strict; -use vars qw(@ISA $VERSION); -use Mail::Field (); use Carp; use Mail::Address; -@ISA = qw(Mail::Field); -$VERSION = '1.52'; -# install header interpretation, see Mail::Field -INIT: { - my $x = bless([]); - - $x->register('To'); - $x->register('From'); - $x->register('Cc'); - $x->register('Reply-To'); - $x->register('Sender'); -} +my $x = bless []; +$x->register('To'); +$x->register('From'); +$x->register('Cc'); +$x->register('Reply-To'); +$x->register('Sender'); -sub create { - my ($self, %arg) = @_; # (email => name, email => realname,...) - my($e,$n); +sub create(@) +{ my ($self, %arg) = @_; $self->{AddrList} = {}; - $self->{AddrList}{$e} = Mail::Address->new($n,$e) - while(($e,$n) = each %arg); + while(my ($e, $n) = each %arg) + { $self->{AddrList}{$e} = Mail::Address->new($n, $e); + } $self; } -sub parse { - my ($self, $string) = @_; - my ($a,$email,$name); - - foreach $a (Mail::Address->parse($string)) { - my $e = $a->address; +sub parse($) +{ my ($self, $string) = @_; + foreach my $a (Mail::Address->parse($string)) + { my $e = $a->address; $self->{AddrList}{$e} = $a; } $self; } -sub stringify { - my $self = shift; - my ($x, $email, $name); - +sub stringify() +{ my $self = shift; join(", ", map { $_->format } values %{$self->{AddrList}}); } -sub addresses { - keys %{shift->{AddrList}}; -} -sub names { - map { $_->name } values %{shift->{AddrList}}; -} +sub addresses { keys %{shift->{AddrList}} } + + +# someone forgot to implement a method to return the Mail::Address +# objects. Added in 2.00; a pity that the name addresses() is already +# given :( That one should have been named emails() +sub addr_list { values %{shift->{AddrList}} } + + +sub names { map { $_->name } values %{shift->{AddrList}} } + -sub set_address { - my ($self, $email, $name) = @_; +sub set_address($$) +{ my ($self, $email, $name) = @_; $self->{AddrList}{$email} = Mail::Address->new($name, $email); $self; } diff --git a/cpan/lib/Mail/Field/AddrList.pod b/cpan/lib/Mail/Field/AddrList.pod new file mode 100644 index 00000000..a42091fd --- /dev/null +++ b/cpan/lib/Mail/Field/AddrList.pod @@ -0,0 +1,175 @@ +=encoding utf8 + +=head1 NAME + +Mail::Field::AddrList - object representation of e-mail address lists + +=head1 INHERITANCE + + Mail::Field::AddrList + is a Mail::Field + +=head1 SYNOPSIS + + use Mail::Field::AddrList; + + $to = Mail::Field->new('To'); + $from = Mail::Field->new('From', 'poe@daimi.aau.dk (Peter Orbaek)'); + + $from->create('foo@bar.com' => 'Mr. Foo', poe => 'Peter'); + $from->parse('foo@bar.com (Mr Foo), Peter Orbaek <poe>'); + + # make a RFC822 header string + print $from->stringify(),"\n"; + + # extract e-mail addresses and names + @addresses = $from->addresses(); # strings + @names = $from->names(); # strings + @addr = $from->addr_list(); # Mail::Address objects (v2.00) + + # adjoin a new address to the list + $from->set_address('foo@bar.com', 'Mr. Foo'); + +=head1 DESCRIPTION + +Defines parsing and formatting of address field, for the following +fields: C<To>, C<From>, C<Cc>, C<Reply-To>, and C<Sender>. + +All the normally used features of the address field specification of +RFC2822 are implemented, but some complex (and therefore hardly ever used) +constructs will not be understood. Use Mail::Message::Field::Full +in MailBox if you need full RFC compliance. + +Extends L<"DESCRIPTION" in Mail::Field|Mail::Field/"DESCRIPTION">. + +=head1 METHODS + +Extends L<"METHODS" in Mail::Field|Mail::Field/"METHODS">. + +=head2 Constructors + +Extends L<"Constructors" in Mail::Field|Mail::Field/"Constructors">. + +=over 4 + +=item Mail::Field::AddrList-E<gt>B<combine>(FIELDS) + +Inherited, see L<Mail::Field/"Constructors"> + +=item Mail::Field::AddrList-E<gt>B<extract>( TAG, HEAD [, INDEX ] ) + +Inherited, see L<Mail::Field/"Constructors"> + +=item Mail::Field::AddrList-E<gt>B<new>( TAG [, STRING | OPTIONS] ) + +Inherited, see L<Mail::Field/"Constructors"> + +=back + +=head2 "Fake" constructors + +Extends L<""Fake" constructors" in Mail::Field|Mail::Field/""Fake" constructors">. + +=over 4 + +=item $obj-E<gt>B<create>(OPTIONS) + +Inherited, see L<Mail::Field/""Fake" constructors"> + +=item $obj-E<gt>B<parse>() + +Inherited, see L<Mail::Field/""Fake" constructors"> + +=back + +=head2 Accessors + +Extends L<"Accessors" in Mail::Field|Mail::Field/"Accessors">. + +=over 4 + +=item $obj-E<gt>B<set>(OPTIONS) + +Inherited, see L<Mail::Field/"Accessors"> + +=item $obj-E<gt>B<stringify>() + +Inherited, see L<Mail::Field/"Accessors"> + +=item $obj-E<gt>B<tag>() + +=item Mail::Field::AddrList-E<gt>B<tag>() + +Inherited, see L<Mail::Field/"Accessors"> + +=back + +=head2 Smart accessors + +Extends L<"Smart accessors" in Mail::Field|Mail::Field/"Smart accessors">. + +=over 4 + +=item $obj-E<gt>B<addr_list>() + +Returns the collected L<Mail::Address|Mail::Address> objects. + +=item $obj-E<gt>B<addresses>() + +Returns a list if email addresses, found in the field content. + +=item $obj-E<gt>B<names>() + +Returns a list of nicely formatted named, for each of the addresses +found in the content. + +=item $obj-E<gt>B<set_address>(EMAIL, NAME) + +Add/replace an EMAIL address to the field. + +=item $obj-E<gt>B<text>( [STRING] ) + +Inherited, see L<Mail::Field/"Smart accessors"> + +=back + +=head1 DETAILS + +Extends L<"DETAILS" in Mail::Field|Mail::Field/"DETAILS">. + +=head1 DIAGNOSTICS + +=over 4 + +=item Error: Undefined subroutine <method> called + +Mail::Field objects use autoloading to compile new functionality. +Apparently, the method 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-2017 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> + diff --git a/cpan/lib/Mail/Field/Date.pm b/cpan/lib/Mail/Field/Date.pm index 49db8a17..303d0ecc 100644 --- a/cpan/lib/Mail/Field/Date.pm +++ b/cpan/lib/Mail/Field/Date.pm @@ -1,80 +1,62 @@ -# Mail::Field::Date -# -# Copyright (c) 1997 Graham Barr <gbarr@pobox.com>. All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. -# -# An example of a Mail::Field::* class +# Copyrights 1995-2017 by [Mark Overmeer <perl@overmeer.net>]. +# For other contributors see ChangeLog. +# See the manual pages for details on the licensing terms. +# Pod stripped from pm file by OODoc 2.02. +use strict; package Mail::Field::Date; +use vars '$VERSION'; +$VERSION = '2.19'; + +use base 'Mail::Field'; -use strict; -use Mail::Field (); -use vars qw(@ISA $VERSION); use Date::Format qw(time2str); -use Date::Parse qw(str2time); +use Date::Parse qw(str2time); -@ISA = qw(Mail::Field); -$VERSION = '1.52'; +(bless [])->register('Date'); -bless([])->register('Date'); -sub set -{ - my $self = shift; - my $arg = @_ == 1 ? shift : { @_ }; - my $s; +sub set() +{ my $self = shift; + my $arg = @_ == 1 ? shift : { @_ }; - foreach $s (qw(Time TimeStr)) - { - if(exists $arg->{$s}) { $self->{$s} = $arg->{$s} } - else { delete $self->{$s} } - } + foreach my $s (qw(Time TimeStr)) + { if(exists $arg->{$s}) + { $self->{$s} = $arg->{$s} } + else { delete $self->{$s} } + } - $self; + $self; } -sub parse -{ - my $self = shift; - - delete $self->{Time}; - $self->{TimeStr} = shift; - $self; +sub parse($) +{ my $self = shift; + delete $self->{Time}; + $self->{TimeStr} = shift; + $self; } -sub time -{ - my $self = shift; - if(@_) - { - delete $self->{TimeStr}; - return $self->{Time} = shift; - } +sub time(;$) +{ my $self = shift; - return $self->{Time} - if exists $self->{Time}; + if(@_) + { delete $self->{TimeStr}; + return $self->{Time} = shift; + } - $self->{Time} = str2time($self->{TimeStr}); + $self->{Time} ||= str2time $self->{TimeStr}; } sub stringify -{ - my $self = shift; - - return $self->{TimeStr} - if exists $self->{TimeStr}; - - time2str("%a, %e %b %T %Y %z", $self->time); +{ my $self = shift; + $self->{TimeStr} ||= time2str("%a, %e %b %Y %T %z", $self->time); } sub reformat -{ - my $self = shift; - $self->time($self->time); - $self->stringify; +{ my $self = shift; + $self->time($self->time); + $self->stringify; } 1; - diff --git a/cpan/lib/Mail/Field/Date.pod b/cpan/lib/Mail/Field/Date.pod new file mode 100644 index 00000000..2a41e19f --- /dev/null +++ b/cpan/lib/Mail/Field/Date.pod @@ -0,0 +1,152 @@ +=encoding utf8 + +=head1 NAME + +Mail::Field::Date - a date header field + +=head1 INHERITANCE + + Mail::Field::Date + is a Mail::Field + +=head1 SYNOPSIS + + use HTTP::Date 'time2iso'; + my $field = Mail::Field->new(Date => time2iso()); + +=head1 DESCRIPTION + +Represents one "Date" header field. + +Extends L<"DESCRIPTION" in Mail::Field|Mail::Field/"DESCRIPTION">. + +=head1 METHODS + +Extends L<"METHODS" in Mail::Field|Mail::Field/"METHODS">. + +=head2 Constructors + +Extends L<"Constructors" in Mail::Field|Mail::Field/"Constructors">. + +=over 4 + +=item Mail::Field::Date-E<gt>B<combine>(FIELDS) + +Inherited, see L<Mail::Field/"Constructors"> + +=item Mail::Field::Date-E<gt>B<extract>( TAG, HEAD [, INDEX ] ) + +Inherited, see L<Mail::Field/"Constructors"> + +=item Mail::Field::Date-E<gt>B<new>( TAG [, STRING | OPTIONS] ) + +Inherited, see L<Mail::Field/"Constructors"> + +=back + +=head2 "Fake" constructors + +Extends L<""Fake" constructors" in Mail::Field|Mail::Field/""Fake" constructors">. + +=over 4 + +=item $obj-E<gt>B<create>(OPTIONS) + +Inherited, see L<Mail::Field/""Fake" constructors"> + +=item $obj-E<gt>B<parse>() + +Inherited, see L<Mail::Field/""Fake" constructors"> + +=back + +=head2 Accessors + +Extends L<"Accessors" in Mail::Field|Mail::Field/"Accessors">. + +=over 4 + +=item $obj-E<gt>B<set>(OPTIONS) + + -Option --Default + Time undef + TimeStr undef + +=over 2 + +=item Time => SECONDS + +=item TimeStr => STRING + +A string acceptable to Date::Parse. + +=back + +=item $obj-E<gt>B<stringify>() + +Inherited, see L<Mail::Field/"Accessors"> + +=item $obj-E<gt>B<tag>() + +=item Mail::Field::Date-E<gt>B<tag>() + +Inherited, see L<Mail::Field/"Accessors"> + +=back + +=head2 Smart accessors + +Extends L<"Smart accessors" in Mail::Field|Mail::Field/"Smart accessors">. + +=over 4 + +=item $obj-E<gt>B<text>( [STRING] ) + +Inherited, see L<Mail::Field/"Smart accessors"> + +=item $obj-E<gt>B<time>( [TIME] ) + +Query (or change) the TIME (as stored in the field) in seconds. + +=back + +=head1 DETAILS + +Extends L<"DETAILS" in Mail::Field|Mail::Field/"DETAILS">. + +=head1 DIAGNOSTICS + +=over 4 + +=item Error: Undefined subroutine <method> called + +Mail::Field objects use autoloading to compile new functionality. +Apparently, the method 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-2017 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> + diff --git a/cpan/lib/Mail/Field/Generic.pm b/cpan/lib/Mail/Field/Generic.pm new file mode 100644 index 00000000..2a9d193c --- /dev/null +++ b/cpan/lib/Mail/Field/Generic.pm @@ -0,0 +1,33 @@ +# Copyrights 1995-2017 by [Mark Overmeer <perl@overmeer.net>]. +# For other contributors see ChangeLog. +# See the manual pages for details on the licensing terms. +# Pod stripped from pm file by OODoc 2.02. +package Mail::Field::Generic; +use vars '$VERSION'; +$VERSION = '2.19'; + + +use Carp; +use base 'Mail::Field'; + + +sub create +{ my ($self, %arg) = @_; + $self->{Text} = delete $arg{Text}; + + croak "Unknown options " . join(",", keys %arg) + if %arg; + + $self; +} + + +sub parse +{ my $self = shift; + $self->{Text} = shift || ""; + $self; +} + +sub stringify { shift->{Text} } + +1; diff --git a/cpan/lib/Mail/Field/Generic.pod b/cpan/lib/Mail/Field/Generic.pod new file mode 100644 index 00000000..cdb90560 --- /dev/null +++ b/cpan/lib/Mail/Field/Generic.pod @@ -0,0 +1,147 @@ +=encoding utf8 + +=head1 NAME + +Mail::Field::Generic - implementation for inspecific fields + +=head1 INHERITANCE + + Mail::Field::Generic + is a Mail::Field + +=head1 SYNOPSIS + + use Mail::Field; + my $field = Mail::Field->new('Subject', 'some subject text'); + my $field = Mail::Field->new(subject => 'some subject text'); + +=head1 DESCRIPTION + +A generic implementation for header fields without own +implementation. This is fine for fields like C<Subject>, C<X-Mailer>, +etc., where the field holds only a string of no particular +importance/format. + +Extends L<"DESCRIPTION" in Mail::Field|Mail::Field/"DESCRIPTION">. + +=head1 METHODS + +Extends L<"METHODS" in Mail::Field|Mail::Field/"METHODS">. + +=head2 Constructors + +Extends L<"Constructors" in Mail::Field|Mail::Field/"Constructors">. + +=over 4 + +=item Mail::Field::Generic-E<gt>B<combine>(FIELDS) + +Inherited, see L<Mail::Field/"Constructors"> + +=item Mail::Field::Generic-E<gt>B<extract>( TAG, HEAD [, INDEX ] ) + +Inherited, see L<Mail::Field/"Constructors"> + +=item Mail::Field::Generic-E<gt>B<new>( TAG [, STRING | OPTIONS] ) + +Inherited, see L<Mail::Field/"Constructors"> + +=back + +=head2 "Fake" constructors + +Extends L<""Fake" constructors" in Mail::Field|Mail::Field/""Fake" constructors">. + +=over 4 + +=item $obj-E<gt>B<create>(OPTIONS) + + -Option--Default + Text '' + +=over 2 + +=item Text => STRING + +=back + +=item $obj-E<gt>B<parse>( [STRING] ) + +Set the new text, which is empty when no STRING is provided. + +=back + +=head2 Accessors + +Extends L<"Accessors" in Mail::Field|Mail::Field/"Accessors">. + +=over 4 + +=item $obj-E<gt>B<set>(OPTIONS) + +Inherited, see L<Mail::Field/"Accessors"> + +=item $obj-E<gt>B<stringify>() + +Inherited, see L<Mail::Field/"Accessors"> + +=item $obj-E<gt>B<tag>() + +=item Mail::Field::Generic-E<gt>B<tag>() + +Inherited, see L<Mail::Field/"Accessors"> + +=back + +=head2 Smart accessors + +Extends L<"Smart accessors" in Mail::Field|Mail::Field/"Smart accessors">. + +=over 4 + +=item $obj-E<gt>B<text>( [STRING] ) + +Inherited, see L<Mail::Field/"Smart accessors"> + +=back + +=head1 DETAILS + +Extends L<"DETAILS" in Mail::Field|Mail::Field/"DETAILS">. + +=head1 DIAGNOSTICS + +=over 4 + +=item Error: Undefined subroutine <method> called + +Mail::Field objects use autoloading to compile new functionality. +Apparently, the method 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-2017 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> + |
