fix: public key names and content types

This commit is contained in:
James Houlahan
2020-09-02 14:31:11 +02:00
parent f9af17dd9b
commit da751a38e3
3 changed files with 5 additions and 4 deletions

View File

@ -21,6 +21,7 @@ package smtp
import ( import (
"encoding/base64" "encoding/base64"
"fmt"
"io" "io"
"mime" "mime"
"net/mail" "net/mail"
@ -179,7 +180,7 @@ func (su *smtpUser) Send(from string, to []string, messageReader io.Reader) (err
return err return err
} }
attachedPublicKeyName = "publickey - " + kr.GetIdentities()[0].Name attachedPublicKeyName = fmt.Sprintf("publickey - %v - %v", kr.GetIdentities()[0].Name, firstKey.GetFingerprint())
} }
message, mimeBody, plainBody, attReaders, err := message.Parse(messageReader, attachedPublicKey, attachedPublicKeyName) message, mimeBody, plainBody, attReaders, err := message.Parse(messageReader, attachedPublicKey, attachedPublicKeyName)

View File

@ -63,7 +63,7 @@ func (store *Store) CreateDraft(
attachmentReaders = append(attachmentReaders, strings.NewReader(attachedPublicKey)) attachmentReaders = append(attachmentReaders, strings.NewReader(attachedPublicKey))
publicKeyAttachment := &pmapi.Attachment{ publicKeyAttachment := &pmapi.Attachment{
Name: attachedPublicKeyName + ".asc", Name: attachedPublicKeyName + ".asc",
MIMEType: "application/pgp-key", MIMEType: "application/pgp-keys",
Header: textproto.MIMEHeader{}, Header: textproto.MIMEHeader{},
} }
attachments = append(attachments, publicKeyAttachment) attachments = append(attachments, publicKeyAttachment)

View File

@ -348,8 +348,8 @@ func getPlainBody(part *parser.Part) []byte {
func attachPublicKey(p *parser.Part, key, keyName string) error { func attachPublicKey(p *parser.Part, key, keyName string) error {
h := message.Header{} h := message.Header{}
h.Set("Content-Type", fmt.Sprintf(`application/pgp-key; name="%v"`, keyName)) h.Set("Content-Type", fmt.Sprintf(`application/pgp-keys; name="%v.asc"; filename="%v.asc"`, keyName, keyName))
h.Set("Content-Disposition", fmt.Sprintf(`attachment; filename="%v.asc.pgp"`, keyName)) h.Set("Content-Disposition", fmt.Sprintf(`attachment; name="%v.asc"; filename="%v.asc"`, keyName, keyName))
h.Set("Content-Transfer-Encoding", "base64") h.Set("Content-Transfer-Encoding", "base64")
body := new(bytes.Buffer) body := new(bytes.Buffer)