go语言实现发送邮件带附件

来源:互联网 发布:如何查看手机网络制式 编辑:程序博客网 时间:2024/05/22 17:31
package mainimport (  "fmt"  "net/smtp"  "bytes"    "encoding/base64"  "io/ioutil")const (   HOST        ="smtp.126.com"   SERVER_ADDR ="smtp.126.com:25"   USER        ="***@126.com"    //发送邮件的邮箱   PASSWORD    ="******"        //发送邮件邮箱的密码)func main() {  to :="1*****@qq.com"   mime := bytes.NewBuffer(nil)  //设置邮件    boundary :="http://dojava.cn"  mime.WriteString("From: 邮件名称<"+USER+">\r\nTo: "+to+"\r\nSubject: 老师数据导出\r\nMIME-Version: 1.0\r\n")    mime.WriteString("Content-Type: multipart/mixed; boundary="+boundary+"\r\n\r\n")    mime.WriteString("--"+boundary+"\r\n")    //自定义邮件内容分隔符   //邮件正文  html :="导出数据已通过邮件发送到您的邮箱,请下载后用excel打开"  //邮件正文  mime.WriteString("Content-Type: text/html; charset=utf-8\r\n\r\n")  //text/html html text/plain 纯文本  mime.WriteString(html)  mime.WriteString("\r\n\r\n\r\n")  //附件  mime.WriteString("--"+boundary+"\r\n")  mime.WriteString("Content-Type: application/vnd.ms-excel\r\n")   //application/octet-stream  mime.WriteString("Content-Transfer-Encoding: base64\r\n")  mime.WriteString("Content-Disposition: attachment; filename=\""+fileName+"\"")  mime.WriteString("\r\n\r\n")  //将文件转为base64  //读取并编码文件内容    //attaData, err := ioutil.ReadFile("../bapi/main.go")    fileName :="./Workbook.xls"  attaData, err := ioutil.ReadFile(fileName)  if err!= nil {       fmt.Print(err)    }   b :=make([]byte, base64.StdEncoding.EncodedLen(len(attaData)))    base64.StdEncoding.Encode(b, attaData)    mime.Write(b)  mime.WriteString("\r\n")  mime.WriteString("--"+boundary+"--")   str3 := mime.String()  auth:= smtp.PlainAuth("", USER, PASSWORD, HOST)   errs := smtp.SendMail(SERVER_ADDR,auth,USER,[]string{to}, []byte(str3))  if errs!= nil {    fmt.Println(errs)  }else{    fmt.Println("邮件发送成功!")  } }


/**  //smtp原始数据From: 发送数据啊 <**@126.com>Date: Fri, 03 Nov 2017 23:13:02 +0800To: 1**@qq.comSubject: 老师数据差点MIME-Version: 1.0Content-Type: multipart/mixed; boundary=http://dojava.cn--http://dojava.cnContent-Type: text/plain; charset=utf-8数据查看啊 --http://dojava.cnContent-Type: application/octet-streamContent-Transfer-Encoding: base64Content-Disposition: attachment; filename="文件名测试.go"cGFja2FnZSBtYWluCgppbXBvcnQgKAoJXyAiYmFwaS9yb3V0ZXJzIgoKCSJnaXRodWIuY29tL2FzdGF4aWUvYmVlZ28iCgkiZ2l0aHViLmNvbS9hc3RheGllL2JlZWdvL29ybSIKCV8gImdpdGh1Yi5jb20vZ28tc3FsLWRyaXZlci9teXNxbCIKKQoKZnVuYyBpbml0KCkgewoJb3JtLlJlZ2lzdGVyRGF0YUJhc2UoImRlZmF1bHQiLCAibXlzcWwiLCAicm9vdDpyb290QHRjcCgxMjcuMC4wLjE6MzMwNikvbXliYnMiKQp9CgpmdW5jIG1haW4oKSB7CglpZiBiZWVnby5CQ29uZmlnLlJ1bk1vZGUgPT0gImRldiIgewoJCWJlZWdvLkJDb25maWcuV2ViQ29uZmlnLkRpcmVjdG9yeUluZGV4ID0gdHJ1ZQoJCWJlZWdvLkJDb25maWcuV2ViQ29uZmlnLlN0YXRpY0RpclsiL3N3YWdnZXIiXSA9ICJzd2FnZ2VyIgoJfQoJYmVlZ28uUnVuKCkKfQo=--http://dojava.cn-- **/


原文链接 : http://dojava.cn/post/view/62.html原文链接


原创粉丝点击