42 lines
888 B
Go
42 lines
888 B
Go
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
|
|
}
|