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
Проблемы-
Если я передаю одно электронное письмо в «sendTO», оно работает нормально. Но после передачи фрагмента электронной почты он не может отправлять электронные письма получателям. Как я могу заставить его работать?
Если я передаю вложение через данные формы, как я могу прикрепить его к письму. В документации упоминается, что мы можем сделать это так: "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...)