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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |