使用gomail發送郵件

1.相關配置(本文采用toml配置,可根據實際情況自行編寫配置)
dev.toml

[email]
host="smtp.mxhichina.com"
port=465
username="[email protected]"
password="xxxxx"
toUsers = [ "[email protected]" ]

配置讀取

package conf

import "github.com/BurntSushi/toml"

var Conf = &config{}

func init() {
    file := "conf/dev.toml"
    if _, err := toml.DecodeFile(file, Conf); err != nil {
        panic(err)
    }
}

type config struct {
    Email *Email `toml:"email"`
}

type Email struct {
    Host string `toml:"host"`
    Port int `toml:"port"`
    UserName string `toml:"username"`
    Password string `toml:"password"`
    ToUsers []string `toml:"toUsers"`
}

2.編寫郵件發送服務

package server

import (
    "evmail/conf"
    "gopkg.in/gomail.v2"
    "log"
)

var (
    config = conf.Conf.Email
    dialer = gomail.NewDialer(config.Host, config.Port, config.UserName, config.Password)
)

func init()  {
    log.Println(config)
}
//發送郵件
func SendMail(body string) {
    if err := dialer.DialAndSend(getMessage(body)); err != nil {
        log.Println("send mail error ......")
        log.Println(err.Error())
    } else {
        log.Println("郵件發送成功")
    }
}
//定義郵件內容
func getMessage(body string) (m *gomail.Message) {
    m = gomail.NewMessage()
    m.SetHeader("From", conf.Conf.Email.UserName)
    m.SetHeader("To", conf.Conf.Email.ToUsers...)
    m.SetHeader("Subject", "xxx")
    m.SetBody("text/plain", body)
    return
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章