go 發送QQ郵件(SSL連接)

package tool

import (
	"errors"
	"github.com/outakujo/utils"
	"gopkg.in/gomail.v2"
)

type Email struct {
	From     string
	Host     string
	Port     int
	UserName string
	Password string
}

func (r *Email) Send(subject, htmlBody, attachFile, rename string, to ...string) error {
	l := len(to)
	if l == 0 {
		return errors.New("to can not be empty")
	}
	m := gomail.NewMessage()
	m.SetHeader("From", r.From)
	m.SetHeader("To", to...)
	m.SetHeader("Subject", subject)
	m.SetBody("text/html", htmlBody)
	if utils.FileIsExist(attachFile) {
		if rename != "" {
			setting := gomail.Rename(rename)
			m.Attach(attachFile, setting)
		} else {
			m.Attach(attachFile)
		}
	}
	d := gomail.NewDialer(r.Host, r.Port, r.UserName, r.Password)
	return d.DialAndSend(m)
}

使用

package main

import (
	"你的模塊名/tool"
	"fmt"
)

func main() {
	var em = &tool.Email{
		From:     "你的qq號@qq.com",
		Host:     "smtp.qq.com",
		Port:     465, //使用SSL,端口號465或587
		UserName: "你的qq號",
		Password: "授權碼,不是qq郵箱密碼",
	}
	hb := "<h3>hello,世界</h3>" //支持html
	err := em.Send("golang", hb, "", "", "接收方qq號@qq.com") //可以多個接收方
	fmt.Println(err)
}

授權碼獲取方法,開啓IMAP/SMTP 服務,就可生成授權碼

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