43 lines
838 B
Go
43 lines
838 B
Go
//go:build example
|
||
// +build example
|
||
|
||
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"log"
|
||
|
||
"git.toowon.com/jimmy/go-common/config"
|
||
"git.toowon.com/jimmy/go-common/factory"
|
||
)
|
||
|
||
func main() {
|
||
cfg, err := config.LoadFromFile("./config/example.json")
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
|
||
app := factory.New(cfg)
|
||
mail, err := app.Email()
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
defer mail.Close()
|
||
|
||
// 同步发送(验证码等需等待结果)
|
||
err = mail.SendEmail(
|
||
[]string{"recipient@example.com"},
|
||
"测试邮件",
|
||
"这是一封测试邮件。",
|
||
)
|
||
if err != nil {
|
||
log.Printf("sync send failed: %v", err)
|
||
} else {
|
||
fmt.Println("sync email sent")
|
||
}
|
||
|
||
// 异步发送(HTTP 通知类)
|
||
mail.SendEmailAsync(nil, []string{"recipient@example.com"}, "异步通知", "后台发送,不阻塞请求")
|
||
fmt.Println("async email enqueued")
|
||
}
|