go语言自带smtp的使用,本文主要对qq发送邮件的使用,部分代码参考。

luominggao123 · 2017-06-27 09:55:30 · 5233 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-06-27 09:55:30 的主题,其中的信息可能已经有所发展或是发生改变。

###go语言自带smtp的使用,本文主要对qq发送邮件的使用,部分代码参考。

  • user:登陆邮箱账号
  • password:不是qq邮箱密码,需要登陆你的qq邮箱,在设置,账号,启用IMAP/SMTP服务,会发送一段身份验证符号给你,用这个登陆
  • host:smtp.qq.com:587
  • to:加入多个邮箱,已逗号隔开,相当于群发。
  • subject:发送的主题
  • body:发送的内容
  • mailtyoe: 发送的内容是文本还是html
package main
import (
    "fmt"
    "net/smtp"
    "strings"
)

func SendMail(user, password, host, to, subject, body, mailtype string) error {
    hp := strings.Split(host, ":")
    auth := smtp.PlainAuth(password, 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 := "********@qq.com"
    password := "**********"
    host := "smtp.qq.com:587"
    to := "*********@qq.com;*******@qq.com"
    subject := "Test send email by golang"
    body := `
 <html>
 <body>
 <h3>
 "Test send email by golang"
 </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!")
    }
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5233 次点击  
加入收藏 微博
2 回复  |  直到 2017-10-14 00:35:25
liushuiyuan123456
liushuiyuan123456 · #1 · 8年之前

你那出现 unencrypted connection 错误没?怎么解决?

xiongyejun
xiongyejun · #2 · 8年之前

测试确实可以,谢谢分享 请问下如何添加附件呢?

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传