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 中的表单数据传递附件,我应该怎么做

请指导我。


子衿沉夜
浏览 95回答 1
1回答

心有法竹

这里需要一些更多的细节来提供帮助。特别是您使用的是哪个 go-mail?对于 1.)如果您参考https://github.com/wneessen/go-mail,使用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-mail有不同的附加和嵌入文件的方式(即来自本地文件,来自 embedFS,来自 io.Reader ...)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go