【go】【gomail】

@


写在前面

  • 相关博文
  • 个人博客首页
  • 免责声明:仅供学习交流使用!开源框架可能存在的风险和相关后果将完全由用户自行承担,本人不承担任何法律责任。

install

go get gopkg.in/gomail.v2

gomail


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

type Mail struct {
	Host string
	Port int
	User string
	Key string
	To []string
}
type Mail struct {
	*Email
	dial    gomail.SendCloser
	message *gomail.Message
}

func New() *Mail {
	m := &Mail{Email:*Email{}, message: gomail.NewMessage()}
	err := m.Dial()
	if err != nil {
		return nil
	}
	return m
}

func (m *Mail) Recovery() error {
	return m.Dial()
}

func (m *Mail) Dial() error {
	d := gomail.NewDialer(m.Host, m.Port, m.User, m.Key)
	s, err := d.Dial()
	if err != nil {
		return err
	}
	m.dial = s
	return nil
}

func (m *Mail) Send(subject, body string) error {
	m.message.SetHeader("From", m.User)
	m.message.SetHeader("To", m.To...)
	m.message.SetHeader("Subject", subject)
	m.message.SetBody("text/html", body)

	if err := gomail.Send(m.dial, m.message); err != nil {
		return err
	}
	return nil
}


参考资料

基础/标准库/第三方库


golang 导航


编程规范


算法|面试


项目


posted @ 2024-05-29 15:58  Nones  阅读(6)  评论(0编辑  收藏  举报