aboutsummaryrefslogtreecommitdiff
path: root/lib/Sietima.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2016-06-19 17:45:01 +0100
committerdakkar <dakkar@thenautilus.net>2016-06-19 17:45:01 +0100
commit175b96bddb37179ab9d851877fa1e99d31f8471d (patch)
tree23e0c0f9eddc7e80fcfdbfee985b9b78d93e9a12 /lib/Sietima.pm
parentTODO list (diff)
downloadSietima-175b96bddb37179ab9d851877fa1e99d31f8471d.tar.gz
Sietima-175b96bddb37179ab9d851877fa1e99d31f8471d.tar.bz2
Sietima-175b96bddb37179ab9d851877fa1e99d31f8471d.zip
NoMail role
Diffstat (limited to 'lib/Sietima.pm')
-rw-r--r--lib/Sietima.pm14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/Sietima.pm b/lib/Sietima.pm
index fbf0566..1e463ec 100644
--- a/lib/Sietima.pm
+++ b/lib/Sietima.pm
@@ -5,7 +5,7 @@ use Types::Standard qw(ArrayRef Object FileHandle Maybe);
use Type::Params qw(compile);
use Sietima::Types qw(Address AddressFromStr
EmailMIME Message
- Subscriber SubscriberFromAddress SubscriberFromStr
+ Subscriber SubscriberFromAddress SubscriberFromStr SubscriberFromHashRef
Transport);
use Sietima::Message;
use Sietima::Subscriber;
@@ -27,6 +27,7 @@ my $subscribers_array = ArrayRef[
Subscriber->plus_coercions(
SubscriberFromAddress,
SubscriberFromStr,
+ SubscriberFromHashRef,
)
];
has subscribers => (
@@ -53,6 +54,13 @@ sub handle_mail {
return;
}
+sub addresses_to_send_to {
+ state $check = compile(Object,EmailMIME);
+ my ($self,$incoming_mail) = $check->(@_);
+
+ return [ map { $_->address } @{$self->subscribers} ];
+}
+
sub munge_mail {
state $check = compile(Object,EmailMIME);
my ($self,$incoming_mail) = $check->(@_);
@@ -60,9 +68,7 @@ sub munge_mail {
return Sietima::Message->new({
mail => $incoming_mail,
from => $self->return_path,
- to => [
- map { $_->address } @{$self->subscribers}
- ],
+ to => $self->addresses_to_send_to($incoming_mail),
});
}