package Sietima::Role::SubscriberOnly::Moderate;
use Moo::Role;
use Sietima::Policy;
use Email::Stuffer;
use Email::MIME;
use namespace::clean;
with 'Sietima::Role::SubscriberOnly',
'Sietima::Role::WithMailStore',
'Sietima::Role::WithAdmin';
sub munge_mail_from_non_subscriber ($self,$mail) {
my $id = $self->mail_store->store($mail,'moderation');
my $notice = Email::Stuffer
->from($self->return_path)
->to($self->admin)
->subject("Message held for moderation - ".$mail->header_str('subject'))
->text_body("Use id $id to refer to it")
->attach($mail->as_string, content_type => 'message/rfc822');
$self->transport->send($notice->email,{
from => $self->return_path,
to => [ $self->admin ],
});
return;
}
sub resume ($self,$mail_id) {
my $mail = $self->mail_store->retrieve_by_id($mail_id);
local $Sietima::Role::SubscriberOnly::let_it_pass=1;
$self->handle_mail($mail);
}
1;