aboutsummaryrefslogtreecommitdiff
path: root/lib/Sietima.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sietima.pm')
-rw-r--r--lib/Sietima.pm28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Sietima.pm b/lib/Sietima.pm
index df5de4e..81821e4 100644
--- a/lib/Sietima.pm
+++ b/lib/Sietima.pm
@@ -49,6 +49,12 @@ has transport => (
);
sub _build_transport { Email::Sender::Simple->default_transport }
+sub handle_mail_from_stdin($self) {
+ my $mail_text = do { local $/; <> };
+ my $incoming_mail = Email::MIME->new(\$mail_text);
+ return $self->handle_mail($incoming_mail);
+}
+
sub handle_mail($self,$incoming_mail) {
state $check = compile(Object,EmailMIME); $check->(@_);
@@ -91,4 +97,26 @@ sub send_message($self,$outgoing_message) {
sub _trait_namespace { 'Sietima::Role' }
+sub command_line_spec($self) {
+ return {
+ name => 'sietima',
+ title => 'a simple mailing list manager',
+ options => [
+ {
+ name => 'verbose',
+ summary => 'more chatty',
+ type => 'flag',
+ multiple => 1,
+ aliases => ['v'],
+ },
+ ],
+ subcommands => {
+ send => {
+ op => 'handle_mail_from_stdin',
+ summary => 'send email from STDIN',
+ },
+ },
+ };
+}
+
1;