我想从数据库获取电子邮件数据以发送包含该数据的电子邮件。此代码来自控制器/通知控制器.go:func (c *notifController) SendNotifEmail(context *gin.Context) { email_to := context.Query("sEmailByDiv") cc_to := context.Query("cc_to") subject := context.Query("subject") body := context.Query("body") notifs := c.notifService.EmailByDiv(email_to) to := []string{notifs} mailer := gomail.NewMessage() mailer.SetHeader("From", CONFIG_SENDER_NAME) mailer.SetHeader("To", to) mailer.SetHeader("Cc", cc_to) mailer.SetHeader("Subject", subject) mailer.SetBody("text/html", body) // dialer := &gomail.Dialer{Host: CONFIG_SMTP_HOST, Port: CONFIG_SMTP_PORT} dialer := gomail.NewDialer( CONFIG_SMTP_HOST, CONFIG_SMTP_PORT, CONFIG_AUTH_EMAIL, CONFIG_AUTH_PASSWORD, ) err := dialer.DialAndSend(mailer) if err != nil { log.Fatal(err.Error()) } log.Println("Mail sent!")}我在 中遇到错误:不能使用通知(类型为 [] 实体的变量。Noteif) 作为数组或切片文本中的字符串值,并且不能在 的参数中使用 to (类型为 []字符串的变量) 作为字符串值。mailer.SetHeader我添加了一个循环,如下所示:func (c *notifController) SendNotifEmail(context *gin.Context) { email_to := context.Query("sEmailByDiv") cc_to := context.Query("cc_to") subject := context.Query("subject") body := context.Query("body") // file := context.Query("file") notifs := c.notifService.EmailByDiv(email_to) to := []string{notifs} mailer := gomail.NewMessage() addresses := make([]string, len(to)) for i, recipient := range to { addresses[i] = mailer.FormatAddress(recipient, "") }
1 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
编写一个循环,将通知中的电子邮件地址作为字符串切片提取:
addresses := make([]string, len(notifs))
for i, notif := range notifs {
addresses[i] = notif.Email
}
使用切片设置标题:
mailer.SetHeader("To", addresses...)
- 1 回答
- 0 关注
- 77 浏览
添加回答
举报
0/150
提交
取消