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原文链接
阅读全文
1 0
- go语言实现发送邮件带附件
- go语言发送邮件(带附件)
- unity3d实现发送带附件的邮件
- JavaMail实现带附件的邮件发送
- java实现邮件发送(带附件)
- Java实现邮件发送【带附件】
- Java实现邮件发送(带附件)
- 邮件发送(带附件)
- java邮件发送 实现群发和带附件发送
- C#发送带附件邮件
- java发送带附件邮件
- ABAP发送邮件-带附件
- oracle 发送带附件邮件
- php 发送带附件邮件
- Java邮件发送带附件
- C#发送带附件邮件
- golang发送邮件,带附件
- java发送邮件带附件
- 【LeetCode】412.Fizz Buzz(easy)解题报告
- 统计难题 HDU
- 几种linux内核文件的区别
- day23笔记
- VS2015 OpenGL开发环境简单配置 glfw + glad
- go语言实现发送邮件带附件
- URAL
- day24笔记
- 运算符之:2、算术运算符(7个)
- python 数据类型
- mysql 登录问题
- day25笔记
- Storm之——流组件简单串行编程实践
- day26笔记