优化smtp的代码

This commit is contained in:
Yun
2025-11-21 11:48:53 +08:00
parent de528fd09b
commit f2b8345e93
6 changed files with 731 additions and 141 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ type EmailFactoryInterface interface {
}
type DefaultEmail struct {
Options emailOption
Options EmailOption
EmailType EmailType
}
+9 -9
View File
@@ -6,7 +6,7 @@ import (
"github.com/yuninks/loggerx"
)
type emailOption struct {
type EmailOption struct {
Logger loggerx.LoggerInterface
Smtp *EmailConfigDataSmtp `json:"smtp,omitempty"` // smtp
@@ -15,42 +15,42 @@ type emailOption struct {
Mailgun *EmialConfigDataMailgun `json:"mailgun,omitempty"` // mailgun
}
func DefaultOptions() emailOption {
func DefaultOptions() EmailOption {
ctx := context.Background()
return emailOption{
return EmailOption{
Logger: loggerx.NewLogger(ctx),
}
}
type Option func(*emailOption)
type Option func(*EmailOption)
// 设置日志
func SetLogger(logger loggerx.LoggerInterface) Option {
return func(o *emailOption) {
return func(o *EmailOption) {
o.Logger = logger
}
}
func SetSmtp(smtp *EmailConfigDataSmtp) Option {
return func(o *emailOption) {
return func(o *EmailOption) {
o.Smtp = smtp
}
}
func SetAws(aws *EmailConfigDataAws) Option {
return func(o *emailOption) {
return func(o *EmailOption) {
o.Aws = aws
}
}
func SetAliyun(aliyun *EmialConfigDataAliyun) Option {
return func(o *emailOption) {
return func(o *EmailOption) {
o.Aliyun = aliyun
}
}
func SetMailgun(mailgun *EmialConfigDataMailgun) Option {
return func(o *emailOption) {
return func(o *EmailOption) {
o.Mailgun = mailgun
}
}