Fix: Sent email is plain text if alternate text is empty

Merged Akshay Bharambe requested to merge ab_FixEmailAlternateText into devbranch
Compare and
2 files
+ 18
4
Preferences
File browser
Compare changes
@@ -81,6 +81,11 @@ func (email *Email) SendMail(templateFilePath string, templateData interface{})
loggermdl.LogError(err)
return err
}
err = email.ParsePlainText(email.plainBody, templateData)
if errormdl.CheckErr(err) != nil {
loggermdl.LogError(err)
return err
}
if err := email.Send(); errormdl.CheckErr1(err) != nil {
loggermdl.LogError("error occured while calling SendMail: ", errormdl.CheckErr1(err))
return errormdl.Wrap("Failed to send the email to: " + strings.Join(email.to, ", "))
@@ -147,8 +152,12 @@ func (email *Email) Send() error {
message.SetHeader("Bcc", email.bcc...)
message.SetHeader("Subject", email.subject)
message.SetHeader("Message-ID", getMSGIDHeader(domain, guidmdl.GetGUID()))
message.SetBody("text/plain", email.body)
message.AddAlternative("text/html", email.plainBody)
if len(strings.TrimSpace(email.plainBody)) == 0 {
message.SetBody("text/html", email.body)
} else {
message.SetBody("text/plain", email.body)
message.AddAlternative("text/html", email.plainBody)
}
for _, attachment := range email.attachments {
message.Attach(attachment) // attach whatever you want