golang 使用 gomail 發送郵件

下面以阿里雲郵箱爲例, 如果使用的是qq郵箱的話需要把mailConn裏面的host改成'smpt.qq.com',user 填寫qq郵箱地址, pass需要填寫你在qq郵箱設置裏面獲取到的授權碼,qq郵箱需要先去郵箱設置裏面開通smtp支持,然後獲取授權碼。然後就可以用qq郵箱發送了。

安裝gomail

go get gopkg.in/gomail.v2

package main

import (
    "gopkg.in/gomail.v2"
    "strconv"
)

func SendMail(mailTo []string,subject string, body string ) error {
  //定義郵箱服務器連接信息,如果是阿里郵箱 pass填密碼,qq郵箱填授權碼
    mailConn := map[string]string {
        "user": "[email protected]", 
        "pass": "xxxx",  
        "host": "smtp.mxhichina.com",
        "port": "465",
    }

    port, _ := strconv.Atoi(mailConn["port"]) //轉換端口類型爲int

    m := gomail.NewMessage()
    m.SetHeader("From","XD Game" + "<" + mailConn["user"] + ">")  //這種方式可以添加別名,即“XD Game”, 也可以直接用<code>m.SetHeader("From",mailConn["user"])</code> 讀者可以自行實驗下效果
    m.SetHeader("To", mailTo...)  //發送給多個用戶
    m.SetHeader("Subject", subject)  //設置郵件主題
    m.SetBody("text/html", body)     //設置郵件正文

    d := gomail.NewDialer(mailConn["host"], port, mailConn["user"], mailConn["pass"])

    err := d.DialAndSend(m)
    return err

}
func main()  {
   //定義收件人
     mailTo := []string {
    "[email protected]",
    "[email protected]",
   "[email protected]",
    }
   //郵件主題爲"Hello"
    subject := "Hello"
   // 郵件正文
    body := "Good"
    SendMail(mailTo, subject, body)
}

更多功能可以參考 https://github.com/go-gomail/gomail

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章