// IsAttachment returns true, if the given header defines an attachment. // First it checks, if the Content-Disposition header defines an attachement. // If this test is false, the Content-Type header is checked. // // Valid Attachment-Headers: // // Content-Disposition: attachment; filename="frog.jpg" // Content-Type: attachment; filename="frog.jpg" // func IsAttachment(header mail.Header) bool { mediatype, _, _ := mime.ParseMediaType(header.Get("Content-Disposition")) if strings.ToLower(mediatype) == "attachment" { return true } mediatype, _, _ = mime.ParseMediaType(header.Get("Content-Type")) if strings.ToLower(mediatype) == "attachment" { return true } return false }
// IsPlain returns true, if the the mime headers define a valid // 'text/plain' or 'text/html part'. Ff emptyContentTypeIsPlain is set // to true, a missing Content-Type header will result in a positive // plain part detection. func IsPlain(header mail.Header, emptyContentTypeIsPlain bool) bool { ctype := header.Get("Content-Type") if ctype == "" && emptyContentTypeIsPlain { return true } mediatype, _, err := mime.ParseMediaType(ctype) if err != nil { return false } switch mediatype { case "text/plain", "text/html": return true } return false }