GoLang邮件发送Demo(继上篇msmtp)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoLang邮件发送Demo(继上篇msmtp)相关的知识,希望对你有一定的参考价值。
GoLang越来越被看好,流行只是时间的问题了,闲暇时间玩玩Go。
下面是发送邮件的demo,替换自己的邮箱,完全可以正常跑起来,用的是net/smtp包:
package main import ( "fmt" "net/smtp" "strings" ) func SendToMail(user, password, host, to, subject, body, mailtype string) error { hp := strings.Split(host, ":") auth := smtp.PlainAuth("", user, password, hp[0]) var content_type string if mailtype == "html" { content_type = "Content-Type: text/" + mailtype + "; charset=UTF-8" } else { content_type = "Content-Type: text/plain" + "; charset=UTF-8" } msg := []byte("To: " + to + "\\r\\nFrom: " + user + "\\r\\nSubject: " + subject + "\\r\\n" + content_type + "\\r\\n\\r\\n" + body) err := smtp.SendMail(host, auth, user, []string{to}, msg) return err } func main() { user := "[email protected]" password := "********" host := "smtp.qq.com:587" to := "[email protected]" subject := "使用Golang发送邮件" body := ` <html> <body> <h3> Test send to emailTest send to email </h3> </body> </html> ` fmt.Println("send email") err := SendToMail(user, password, host, to, subject, body, "html") if err != nil { fmt.Println("Send mail error!") fmt.Println(err) } else { fmt.Println("Send mail success!") } }
GoLang的基础包还是挺多的,也有github上的各种库,使用很方便!
以上是关于GoLang邮件发送Demo(继上篇msmtp)的主要内容,如果未能解决你的问题,请参考以下文章