27 lines
505 B
Go
27 lines
505 B
Go
|
package pgpmime
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"net/textproto"
|
||
|
"sort"
|
||
|
)
|
||
|
|
||
|
// Borrowed from https://golang.org/src/mime/multipart/writer.go?s=2140:2215#L76
|
||
|
func writeMIMEHeader(w io.Writer, header textproto.MIMEHeader) error {
|
||
|
var b bytes.Buffer
|
||
|
keys := make([]string, 0, len(header))
|
||
|
for k := range header {
|
||
|
keys = append(keys, k)
|
||
|
}
|
||
|
sort.Strings(keys)
|
||
|
for _, k := range keys {
|
||
|
for _, v := range header[k] {
|
||
|
fmt.Fprintf(&b, "%s: %s\r\n", k, v)
|
||
|
}
|
||
|
}
|
||
|
_, err := io.Copy(w, &b)
|
||
|
return err
|
||
|
}
|