goext/googleapi/attachment.go

42 lines
888 B
Go
Raw Normal View History

2023-12-01 18:33:04 +01:00
package googleapi
import (
"encoding/base64"
"fmt"
)
type MailAttachment struct {
IsInline bool
ContentType *string
Filename *string
Data []byte
}
func (a MailAttachment) dump() []string {
res := make([]string, 0, 4)
if a.ContentType != nil {
res = append(res, "Content-Type: "+*a.ContentType+"; charset=UTF-8")
}
res = append(res, "Content-Transfer-Encoding: base64")
if a.IsInline {
if a.Filename != nil {
res = append(res, fmt.Sprintf("Content-Disposition: inline;filename=\"%s\"", *a.Filename))
} else {
res = append(res, "Content-Disposition: inline")
}
} else {
if a.Filename != nil {
res = append(res, fmt.Sprintf("Content-Disposition: attachment;filename=\"%s\"", *a.Filename))
} else {
res = append(res, "Content-Disposition: attachment")
}
}
res = append(res, base64.URLEncoding.EncodeToString(a.Data))
return res
}