Go-Mail для нескольких получателей и вложения

Я пытаюсь создать службу электронной почты с использованием библиотеки go-mail и заставить ее работать. Однако есть несколько проблем, которые я не могу решить

У меня есть структура для данных формы-

      type SendMailBody struct {
    EmailTo []string `form:"sendTo"`
    Subject string   `form:"subject"`
    Body    string   `form:"body"`
}

Данные формы, которые я отправляю в API,

      subject: Notification
sendTo:["abc@gmail.com", "xyz@gmail.com"]
body:You have been notified

Проблемы-

  1. Если я передаю одно электронное письмо в «sendTO», оно работает нормально. Но после передачи фрагмента электронной почты он не может отправлять электронные письма получателям. Как я могу заставить его работать?

  2. Если я передаю вложение через данные формы, как я могу прикрепить его к письму. В документации упоминается, что мы можем сделать это так: "m.Attach("/tmp/image.jpg")" . Но как мне это сделать, если я передаю вложение через данные формы в API

Пожалуйста, проведите меня через это.

1 ответ

Здесь необходимы дополнительные детали. В частности, какой go-mail вы используете?

Для 1.)

Если вы ссылаетесь на , используяMsg.To()должно нормально работать с несколькими получателями. См. документацию по адресу: https://pkg.go.dev/github.com/wneessen/go-mail#Msg.To .

Если вы обратитесь к https://github.com/go-mail/mail, тамMessage.SetAddressHeader()(https://pkg.go.dev/github.com/go-mail/mail?utm_source=godoc#Message.SetAddressHeader), который не поддерживает несколько адресов получателей. Вам нужно будет использоватьMessage.SetHeaders()для"To"-header (https://pkg.go.dev/github.com/go-mail/mail?utm_source=godoc#Message.SetHeaders).

Для 2.)

Это полностью зависит от того, как вы читаете данные вложений (а также от используемой вами библиотеки go-mail). https://github.com/wneessen/go-mailhttps://github.com/wneessen/go-mail имеет разные способы прикрепления и встраивания файлов (например, из локального файла, из embedFS, из io.Reader...)

Другие вопросы по тегам