diff --git a/internal/smtp/user.go b/internal/smtp/user.go index caed8442..5b4901b4 100644 --- a/internal/smtp/user.go +++ b/internal/smtp/user.go @@ -21,6 +21,7 @@ package smtp import ( "encoding/base64" + "fmt" "io" "mime" "net/mail" @@ -179,7 +180,7 @@ func (su *smtpUser) Send(from string, to []string, messageReader io.Reader) (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) diff --git a/internal/store/user_message.go b/internal/store/user_message.go index 7ea629e1..e85a8322 100644 --- a/internal/store/user_message.go +++ b/internal/store/user_message.go @@ -63,7 +63,7 @@ func (store *Store) CreateDraft( attachmentReaders = append(attachmentReaders, strings.NewReader(attachedPublicKey)) publicKeyAttachment := &pmapi.Attachment{ Name: attachedPublicKeyName + ".asc", - MIMEType: "application/pgp-key", + MIMEType: "application/pgp-keys", Header: textproto.MIMEHeader{}, } attachments = append(attachments, publicKeyAttachment) diff --git a/pkg/message/parser.go b/pkg/message/parser.go index cd64ad79..db4c6d39 100644 --- a/pkg/message/parser.go +++ b/pkg/message/parser.go @@ -348,8 +348,8 @@ func getPlainBody(part *parser.Part) []byte { func attachPublicKey(p *parser.Part, key, keyName string) error { h := message.Header{} - h.Set("Content-Type", fmt.Sprintf(`application/pgp-key; name="%v"`, keyName)) - h.Set("Content-Disposition", fmt.Sprintf(`attachment; filename="%v.asc.pgp"`, 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; name="%v.asc"; filename="%v.asc"`, keyName, keyName)) h.Set("Content-Transfer-Encoding", "base64") body := new(bytes.Buffer)