diff --git a/filesender.go b/filesender.go index b1c3dc9..b20a8e9 100644 --- a/filesender.go +++ b/filesender.go @@ -110,7 +110,7 @@ func (ps FileSender) Send(m mail.Message) error { ) var re = regexp.MustCompile(cc.replaceRegexp) - content := re.ReplaceAllString(v.Content, header) + content := re.ReplaceAllString(v.Content, fmt.Sprintf("$1\n%v\n$2$3", header)) path, err := ps.saveEmailBody(content, fmt.Sprint(index), m) if err != nil { diff --git a/mailopen_test.go b/mailopen_test.go index daa1be6..3e936b7 100644 --- a/mailopen_test.go +++ b/mailopen_test.go @@ -1,12 +1,12 @@ package mailopen_test import ( + _ "embed" "fmt" "io/ioutil" "os" "path" "path/filepath" - "strings" "testing" "github.com/gobuffalo/buffalo/mail" @@ -22,13 +22,9 @@ func (ps falseSender) Send(m mail.Message) error { return nil } -const ( - txtFormat = `From: %v
- To: %v
- Cc: %v
- Bcc: %v
- Subject: %v
- ----------------------------` +var ( + //go:embed plain-header.txt + txtFormat string ) func Test_Send(t *testing.T) { @@ -47,7 +43,7 @@ func Test_Send(t *testing.T) { m.Bodies = []mail.Body{ {ContentType: "text/html", Content: "
Some Message
"}, - {ContentType: "text/plain", Content: "Same message"}, + {ContentType: "text/plain", Content: "Some message"}, } m.Attachments = []mail.Attachment{ @@ -65,31 +61,31 @@ func Test_Send(t *testing.T) { r.FileExists(htmlFile) r.FileExists(txtFile) - txtHeader, err := ioutil.ReadFile(htmlFile) + htmlContent, err := ioutil.ReadFile(htmlFile) r.NoError(err) - r.Contains(string(txtHeader), m.From) - r.Contains(string(txtHeader), m.To[0]) - r.Contains(string(txtHeader), m.CC[0]) - r.Contains(string(txtHeader), m.Bcc[0]) - r.Contains(string(txtHeader), m.Subject) + r.Contains(string(htmlContent), m.From) + r.Contains(string(htmlContent), m.To[0]) + r.Contains(string(htmlContent), m.CC[0]) + r.Contains(string(htmlContent), m.Bcc[0]) + r.Contains(string(htmlContent), m.Subject) + r.Contains(string(htmlContent), "Some Message") for _, a := range m.Attachments { - r.Contains(string(txtHeader), a.Name) + r.Contains(string(htmlContent), a.Name) } - txtHeader, err = ioutil.ReadFile(txtFile) + txtContent, err := ioutil.ReadFile(txtFile) r.NoError(err) - r.Contains(string(txtHeader), m.From) - r.Contains(string(txtHeader), m.To[0]) - r.Contains(string(txtHeader), m.CC[0]) - r.Contains(string(txtHeader), m.Bcc[0]) - r.Contains(string(txtHeader), m.Subject) - - format := strings.ReplaceAll(txtFormat, "\t", "") + r.Contains(string(txtContent), m.From) + r.Contains(string(txtContent), m.To[0]) + r.Contains(string(txtContent), m.CC[0]) + r.Contains(string(txtContent), m.Bcc[0]) + r.Contains(string(txtContent), m.Subject) + r.Contains(string(txtContent), "Some message") - r.Equal(string(txtHeader), fmt.Sprintf(format, m.From, m.To[0], m.CC[0], m.Bcc[0], m.Subject)) + r.Contains(string(txtContent), fmt.Sprintf(txtFormat, m.From, m.To[0], m.CC[0], m.Bcc[0], m.Subject)) } func Test_SendWithOptionsOnlyHTML(t *testing.T) {