Files

57 lines
1.1 KiB
Go
Raw Permalink Normal View History

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