【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 @   Nones  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示