您的位置:首页 > 编程语言 > Go语言

Go语言发邮件

2014-03-01 21:14 344 查看
package main

import (

"fmt"

"net/smtp"

"strings"

)

/*

* user : example@example.com login smtp server user

* password: xxxxx login smtp server password

* host: smtp.example.com:port smtp.163.com:25

* to: example@example.com;example1@163.com;example2@sina.com.cn;...

* subject:The subject of mail

* body: The content of mail

* mailtyoe: mail type html or text

*/

func SendMail(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 + "<" + user + ">\r\nSubject: " + subject + "\r\n" + content_type + "\r\n\r\n" + body)

send_to := strings.Split(to, ";")

err := smtp.SendMail(host, auth, user, send_to, msg)

return err

}

func main() {

user := "XXXX@163.com"

password := "aaaaaaa"

host := "smtp.163.com:25"

to := "xymprivate@163.com"

subject := "Test send email by golang"

body := `

<html>

<body>

<h3>

"这是GO语言写的测试邮件。"

</h3>

</body>

</html>

`

fmt.Println("send email")

err := SendMail(user, password, host, to, subject, body, "html")

if err != nil {

fmt.Println("send mail error!")

fmt.Println(err)

} else {

fmt.Println("send mail success!")

}

}

//该代码片段来自于: http://www.sharejs.com/codes/go/4360
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: