diff --git a/utils/mail.go b/utils/mail.go index b598d6d1..35b4b950 100644 --- a/utils/mail.go +++ b/utils/mail.go @@ -157,7 +157,17 @@ func (e *Email) Bytes() ([]byte, error) { } // Add attach file to the send mail -func (e *Email) AttachFile(filename string, id string) (a *Attachment, err error) { +func (e *Email) AttachFile(args ...string) (a *Attachment, err error) { + argsLength := len(args) + if argsLength < 1 || argsLength > 2 { + return + } + filename := args[0] + id := "" + if argsLength > 1 { + id = args[1] + } + id = args[1] f, err := os.Open(filename) if err != nil { return @@ -169,7 +179,18 @@ func (e *Email) AttachFile(filename string, id string) (a *Attachment, err error // Attach is used to attach content from an io.Reader to the email. // Parameters include an io.Reader, the desired filename for the attachment, and the Content-Type. -func (e *Email) Attach(r io.Reader, filename string, c string, id string) (a *Attachment, err error) { +func (e *Email) Attach(r io.Reader, filename string, ci ...string) (a *Attachment, err error) { + args := ci + argsLength := len(args) + if argsLength < 1 || argsLength > 2 { + return + } + c := args[0] + id := "" + if argsLength > 1 { + id = args[1] + } + id = args[1] var buffer bytes.Buffer if _, err = io.Copy(&buffer, r); err != nil { return @@ -189,7 +210,7 @@ func (e *Email) Attach(r io.Reader, filename string, c string, id string) (a *At if id != "" { at.Header.Set("Content-Disposition", fmt.Sprintf("inline;\r\n filename=\"%s\"", filename)) at.Header.Set("Content-ID", fmt.Sprintf("<%s>", id)) - }else { + } else { at.Header.Set("Content-Disposition", fmt.Sprintf("attachment;\r\n filename=\"%s\"", filename)) } at.Header.Set("Content-Transfer-Encoding", "base64")