加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang 实现SSL 发送邮件

发布时间:2020-12-16 09:33:45 所属栏目:大数据 来源:网络整理
导读:func SendMonitorStatus(ret map[string]bool,smtpHost,smtpPort,smtpUser,smtpPass,toSendList string) (bool,error) {t := time.Now()year,month,day := t.Date()curtime := fmt.Sprintf("%d-%d-%d %d:%d",year,day,t.Hour(),t.Minute())auth := smtp.Plai
func SendMonitorStatus(ret map[string]bool,smtpHost,smtpPort,smtpUser,smtpPass,toSendList string) (bool,error) {
	t := time.Now()
	year,month,day := t.Date()
	curtime := fmt.Sprintf("%d-%d-%d %d:%d",year,day,t.Hour(),t.Minute())
	auth := smtp.PlainAuth("",smtpHost)
	to := strings.Split(toSendList,",")
	header := make(map[string]string)
	header["From"] = smtpUser
	header["To"] = to[0]
	header["Date"] = curtime
	header["Subject"] = "文件同步报告"
	header["Content-Type"] = "text/html;charset=UTF-8"
	body := ""
	for k,v := range ret{
		body+= fmt.Sprintf("%s:%v",k,v)
	}


	msg := ""
	for k,v := range header{
		msg += fmt.Sprintf("%s:%srn",v)
	}
	msg += "rn"+body
	conn,err := tls.Dial("tcp",smtpHost+":"+smtpPort,nil)
	if err != nil {
		HandleWarning(err)
	}
	co,err := smtp.NewClient(conn,smtpHost)
	if err != nil {
		HandleWarning(err)
	}
	defer co.Close()
	if auth != nil {
		if ok,_ := co.Extension("AUTH");ok {
			if err = co.Auth(auth);err != nil {
				HandleError(err)
			}
		}
	}
	if err = co.Mail(smtpUser); err != nil {
		HandleError(err)
	}
	for _,addr := range to {
		if err = co.Rcpt(addr); err != nil {
			HandleWarning(err)
		}
	}
	w,err := co.Data()
	if err != nil {
		HandleWarning(err)
	}
	_,err = w.Write([]byte(msg))
	if err != nil {
		HandleWarning(err)
	}
	err = w.Close()
	if err != nil {
		HandleWarning(err)
	}
	co.Quit()
	return true,nil
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读