diff --git a/email/worker.go b/email/worker.go index 3e8874d22a8ca10c1632dd37b27ac1edbb41b495..8e7eb03543cdde3579a5933a13ade98b89f16847 100644 --- a/email/worker.go +++ b/email/worker.go @@ -144,13 +144,15 @@ header.SetAddressList("Reply-To", []*mail.Address{queue.ownerAddress}) } var ( - buf bytes.Buffer - cleartext io.WriteCloser + buf bytes.Buffer + cleartext io.WriteCloser + inlineHeader mail.Header ) if rcptKey != nil { cleartext, err = prepareEncrypted(rcptKey, header, &buf, queue.entity) } + // Fall back to unencrypted email if encryption did not work // TODO should we add the error message to the email? if rcptKey == nil || err != nil { @@ -167,10 +169,10 @@ log.Fatalf("Signing mail failed: %v", err) } } else { cleartext = nopWriteCloser{&buf} + inlineHeader = header } } - var inlineHeader mail.Header inlineHeader.SetContentType("text/plain", map[string]string{ "charset": "UTF-8", "format": "flowed",