@@ -5,11 +5,22 @@ type PartsSet struct {
55 Parts []Part
66}
77
8- func NewPartsSet () PartsSet {
9- return PartsSet {Parts : []Part {}}
8+ func NewPartsSet (ct string ) PartsSet {
9+ return PartsSet {
10+ ContentType : ct ,
11+ Parts : []Part {}}
1012}
1113
12- func (ms PartsSet ) Builder (close bool ) (MultipartBuilder , error ) {
14+ func (ps * PartsSet ) AddMailBody (textBody , htmlBody []byte ) error {
15+ if p , err := NewPartAlternativeOrNot (textBody , htmlBody ); err != nil {
16+ return err
17+ } else {
18+ ps .Parts = append ([]Part {p }, ps .Parts ... )
19+ return nil
20+ }
21+ }
22+
23+ func (ms * PartsSet ) Builder (close bool ) (MultipartBuilder , error ) {
1324 mb := NewMultipartBuilder ()
1425 if len (ms .Parts ) == 0 {
1526 err := mb .Close ()
@@ -33,7 +44,7 @@ func (ms PartsSet) Builder(close bool) (MultipartBuilder, error) {
3344
3445// Part returns the MultipartSimple as a Part. This can be used for
3546// creating parts such as `multipart/alternative`.
36- func (ms PartsSet ) Part () (Part , error ) {
47+ func (ms * PartsSet ) Part () (Part , error ) {
3748 ct , body , err := ms .Strings ()
3849 if err != nil {
3950 return Part {}, err
@@ -47,12 +58,16 @@ func (ms PartsSet) Part() (Part, error) {
4758 }
4859}
4960
50- func (ms PartsSet ) Strings () (ctHeader , body string , err error ) {
51- mb , err := ms .Builder (true )
61+ func (ps * PartsSet ) Strings () (ctHeader , body string , err error ) {
62+ if len (ps .Parts ) == 0 {
63+ return ps .ContentType , "" , nil
64+ }
65+
66+ mb , err := ps .Builder (true )
5267 if err != nil {
5368 return
5469 }
55- ctHeader = mb .ContentType (ms .ContentType )
70+ ctHeader = mb .ContentType (ps .ContentType )
5671 body = mb .String ()
5772 return
5873}
0 commit comments