diff --git a/example/email/AnnexSend_test.go b/example/email/AnnexSend_test.go new file mode 100644 index 0000000..f3827f2 --- /dev/null +++ b/example/email/AnnexSend_test.go @@ -0,0 +1,27 @@ +/* + * @Author : huangzj + * @Time : 2020/12/29 11:24 + * @Description: + */ + +package email + +import ( + "github.com/jordan-wright/email" + "log" + "net/smtp" + "testing" +) + +func TestSendAnnex(t *testing.T) { + e := email.NewEmail() + e.From = "hzj <你的邮箱@qq.com>" + e.To = []string{"hzj <接受者的邮箱@qq.com>"} + e.Subject = "附件" + e.Text = []byte("附件") + _, _ = e.AttachFile("囚徒健身2翻译版 修改.pdf") + err := e.Send("smtp.qq.com:587", smtp.PlainAuth("", "你的邮箱@qq.com", "你的stmp的密码", "smtp.qq.com")) + if err != nil { + log.Fatal(err) + } +} diff --git a/example/email/EmailPool_test.go b/example/email/EmailPool_test.go new file mode 100644 index 0000000..0e43979 --- /dev/null +++ b/example/email/EmailPool_test.go @@ -0,0 +1,55 @@ +/* + * @Author : huangzj + * @Time : 2020/12/29 11:32 + * @Description: + */ + +package email + +import ( + "fmt" + "github.com/jordan-wright/email" + "log" + "net/smtp" + "os" + "sync" + "testing" + "time" +) + +func TestEmailPool(t *testing.T) { + ch := make(chan *email.Email, 4) + //创建2个连接的邮件池 + p, err := email.NewPool("smtp.qq.com:587", 2, smtp.PlainAuth("", "你的邮箱@qq.com", "你的stmp的密码", "smtp.qq.com")) + if err != nil { + log.Fatal("failed to create pool:", err) + } + + //进行邮件发送 + var wg sync.WaitGroup + wg.Add(2) + for i := 0; i < 2; i++ { + go func() { + defer wg.Done() + for e := range ch { + err := p.Send(e, 1*time.Second) + if err != nil { + _, _ = fmt.Fprintf(os.Stderr, "email:%v sent error:%v\n", e, err) + } + } + }() + } + + //发送四个邮件 + for i := 0; i < 4; i++ { + e := email.NewEmail() + e.From = "hzj <你的邮箱@qq.com>" + e.To = []string{"hzj <接受者的邮箱@qq.com>"} + e.Subject = "Awesome web" + e.Text = []byte(fmt.Sprintf("Awesome Web %d", i+1)) + ch <- e + } + + close(ch) + wg.Wait() +} diff --git a/example/email/HtmlSend_test.go b/example/email/HtmlSend_test.go new file mode 100644 index 0000000..ac8ccd2 --- /dev/null +++ b/example/email/HtmlSend_test.go @@ -0,0 +1,40 @@ +/* + * @Author : huangzj + * @Time : 2020/12/29 11:19 + * @Description: 测试发送html,包含抄送对象 + */ + +package email + +import ( + "github.com/jordan-wright/email" + "log" + "net/smtp" + "testing" +) + +func TestSendHtml(t *testing.T) { + e := email.NewEmail() + e.From = "hzj <你的邮箱@qq.com>" + e.To = []string{"hzj <接受者的邮箱@qq.com>"} + //设置抄送目标 + e.Cc = []string{"hzj <抄送邮箱@qq.com>"} + e.Subject = "参考:Go 每日一库" + e.HTML = []byte(` +