go写email邮件发送html

用的是 gopkg.in/gomail.v2

在这里插入图片描述

// sent.go
package service

import (
	"context"
	"fmt"
	"github.com/gogf/gf/v2/database/gdb"
	"github.com/gogf/gf/v2/frame/g"
	"gopkg.in/gomail.v2"
	"strings"
)
type CmsSentService struct {}

// 发送邮件
func (s *CmsSentService) SentEmail(content string, subject string, addressHeader string, config g.Map) {

	// 邮件开启
	if gconv.Int(config["remindEmail"]) == 1 {
		// 设置 SMTP 服务器的认证信息
		smtp := gconv.String(config["smtp"])
		smtpPort := 465
		senderEmail := gconv.String(config["sendEmail"])
		senderPassword := gconv.String(config["pass"])

		body := content
		// 邮件内容
		toEmail := gconv.String(config["requestEmail"])
		toEmails := strings.Split(toEmail, "|")

		m := gomail.NewMessage()
		m.SetHeader("To", toEmails...)
		m.SetHeader("Subject", subject)
		m.SetAddressHeader("From", senderEmail, addressHeader)
		m.SetBody("text/html", body)

		d := gomail.NewDialer(smtp, smtpPort, senderEmail, senderPassword)
		// 发送
		err := d.DialAndSend(m)
		if err != nil {
			panic(err)
		}
		g.Log().Debug(ctx, "邮件发送成功")
		fmt.Println("发送成功")
	}

}

调用方法发送email
content如果是是html,那么 m.SetBody(“text/html”, body),就必须写text/html,如果是单文本,就是text/plain

func main() {
	orderContent := "订单到期"
	domainContent := "域名到期"
	content := fmt.Sprintf("<h1>以下编号即将到期:</h1>%s,<h1>以下域名即将到期</h1>%s", orderContent, domainContent)
	subject := "有新的留言"
	addressHeader := "通知邮件"
	config := g.Map{
		"remindEmail":1,
		"smtp": "smtp.qq.com",
		"sendEmail":"",
		"pass":"",
		"requestEmail":"",
	}
	service.SentEmail(content, subject, addressHeader, config)
}



  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值