Files
2025-08-10 21:17:10 +08:00

57 lines
1.1 KiB
Go

package interfaces
import (
"context"
"github.com/yuninks/loggerx"
)
type emailOption struct {
Logger loggerx.LoggerInterface
Smtp *EmailConfigDataSmtp `json:"smtp,omitempty"` // smtp
Aws *EmailConfigDataAws `json:"aws,omitempty"` // 亚马逊
Aliyun *EmialConfigDataAliyun `json:"aliyun,omitempty"` // 阿里云
Mailgun *EmialConfigDataMailgun `json:"mailgun,omitempty"` // mailgun
}
func DefaultOptions() emailOption {
ctx := context.Background()
return emailOption{
Logger: loggerx.NewLogger(ctx),
}
}
type Option func(*emailOption)
// 设置日志
func SetLogger(logger loggerx.LoggerInterface) Option {
return func(o *emailOption) {
o.Logger = logger
}
}
func SetSmtp(smtp *EmailConfigDataSmtp) Option {
return func(o *emailOption) {
o.Smtp = smtp
}
}
func SetAws(aws *EmailConfigDataAws) Option {
return func(o *emailOption) {
o.Aws = aws
}
}
func SetAliyun(aliyun *EmialConfigDataAliyun) Option {
return func(o *emailOption) {
o.Aliyun = aliyun
}
}
func SetMailgun(mailgun *EmialConfigDataMailgun) Option {
return func(o *emailOption) {
o.Mailgun = mailgun
}
}