summaryrefslogtreecommitdiff
path: root/cpan/lib/Mail/Field
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/lib/Mail/Field')
-rw-r--r--cpan/lib/Mail/Field/AddrList.pm118
-rw-r--r--cpan/lib/Mail/Field/AddrList.pod175
-rw-r--r--cpan/lib/Mail/Field/Date.pm92
-rw-r--r--cpan/lib/Mail/Field/Date.pod152
-rw-r--r--cpan/lib/Mail/Field/Generic.pm33
-rw-r--r--cpan/lib/Mail/Field/Generic.pod147
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>
+