Send unencrypted replies if encryption fails
[app-edwardng.git] / lib / App / EdwardNG.pm
index 88046414814dfe4af44f5cbe016a4bbf50be60f7..08b50eb827865e4b1e155cf2cee6f414dd605703 100644 (file)
@@ -121,18 +121,19 @@ sub run {
        $params{plaintext} = first_part $params{decrypted} if $params{decrypted};
 
        my $tt = Template->new(INCLUDE_PATH => 'tmpl/en');
-       my ($data, $subject);
+       my $data;
        $tt->process($tmpl, \%params, \$data);
-       $tt->process('subject', undef, \$subject);
        my $email = MIME::Entity->build(
                From    => $ENV{EDWARDNG_FROM},
                To      => $in->get('From'),
-               Subject => $subject,
+               Subject => 'Re: ' . $in->get('Subject'),
                Data    => $data);
 
+       my $email_unencrypted = $email->dup;
        my $mg = mg always_trust => 1;
-       $mg->mime_signencrypt($email, $in->get('From') =~ /<(.*)>/) and debug 'Could not encrypt message. GnuPG said ', stringify $mg->{last_message};
-       sendmail $email
+       my $encrypt_failed = $mg->mime_signencrypt($email, $in->get('From') =~ /<(.*)>/);
+       debug 'Could not encrypt message, sending unencrypted. GnuPG said ', stringify $mg->{last_message} if $encrypt_failed;
+       sendmail $encrypt_failed ? $email_unencrypted : $email
 }
 
 1;
This page took 0.009964 seconds and 4 git commands to generate.