aboutsummaryrefslogtreecommitdiff
path: root/lib/Sietima/Message.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sietima/Message.pm')
-rw-r--r--lib/Sietima/Message.pm113
1 files changed, 69 insertions, 44 deletions
diff --git a/lib/Sietima/Message.pm b/lib/Sietima/Message.pm
index b0d82e6..45b2e2e 100644
--- a/lib/Sietima/Message.pm
+++ b/lib/Sietima/Message.pm
@@ -10,9 +10,62 @@ use Sietima::Subscriber;
use Email::MIME;
use namespace::clean;
-# VERSION
+our $VERSION = '1.1.2'; # VERSION
# ABSTRACT: an email message with an envelope
+
+has mail => (
+ is => 'ro',
+ isa => EmailMIME,
+ required => 1,
+);
+
+
+has from => (
+ is => 'ro',
+ isa => Address,
+ coerce => AddressFromStr,
+ required => 1,
+);
+
+
+my $subscriber_array = ArrayRef[
+ Subscriber->plus_coercions(
+ SubscriberFromStr,
+ SubscriberFromAddress,
+ )
+];
+has to => (
+ isa => $subscriber_array,
+ is => 'ro',
+ coerce => $subscriber_array->coercion,
+ required => 1,
+);
+
+
+sub envelope ($self) {
+ return {
+ from => $self->from,
+ to => [ map { $_->address } $self->to->@* ],
+ }
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Sietima::Message - an email message with an envelope
+
+=head1 VERSION
+
+version 1.1.2
+
=head1 SYNOPSIS
use Sietima::Message;
@@ -34,67 +87,39 @@ C<Sietima::send_message>|Sietima/send_message >>.
All attributes are read-only and required.
-=attr C<mail>
+=head2 C<mail>
An L<< C<Email::MIME> >> object, representing the message.
-=cut
-
-has mail => (
- is => 'ro',
- isa => EmailMIME,
- required => 1,
-);
-
-=attr C<from>
+=head2 C<from>
An L<< C<Email::Address> >> object, coercible from a string,
representing the sender.
-=cut
-
-has from => (
- is => 'ro',
- isa => Address,
- coerce => AddressFromStr,
- required => 1,
-);
-
-=attr C<to>
+=head2 C<to>
An arrayref of L<< C<Sietima::Subscriber> >> objects, each coercible
from a string or an L<< C<Email::Address> >> object, representing the
recipients.
-=cut
-
-my $subscriber_array = ArrayRef[
- Subscriber->plus_coercions(
- SubscriberFromStr,
- SubscriberFromAddress,
- )
-];
-has to => (
- isa => $subscriber_array,
- is => 'ro',
- coerce => $subscriber_array->coercion,
- required => 1,
-);
+=head1 METHODS
-=method C<envelope>
+=head2 C<envelope>
my %envelope = $message->envelope->%*;
Returns a hashref with envelope data, suitable for use with L<<
C<Email::Sender::Transport::send>|Email::Sender::Transport/send >>.
-=cut
+=head1 AUTHOR
-sub envelope ($self) {
- return {
- from => $self->from,
- to => [ map { $_->address } $self->to->@* ],
- }
-}
+Gianni Ceccarelli <dakkar@thenautilus.net>
-1;
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2023 by Gianni Ceccarelli <dakkar@thenautilus.net>.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut