2025-07-27 22:13:01 +08:00
|
|
|
package interfaces
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
|
|
|
|
|
"github.com/yuninks/loggerx"
|
|
|
|
|
)
|
|
|
|
|
|
2025-11-21 14:01:43 +08:00
|
|
|
type Options struct {
|
2025-08-10 21:17:10 +08:00
|
|
|
Logger loggerx.LoggerInterface
|
2025-07-27 22:13:01 +08:00
|
|
|
|
2025-11-21 15:16:58 +08:00
|
|
|
EmialConfig
|
2025-07-27 22:13:01 +08:00
|
|
|
}
|
|
|
|
|
|
2025-11-21 14:01:43 +08:00
|
|
|
func DefaultOptions() Options {
|
2025-07-27 22:13:01 +08:00
|
|
|
ctx := context.Background()
|
2025-11-21 14:01:43 +08:00
|
|
|
return Options{
|
2025-08-10 21:17:10 +08:00
|
|
|
Logger: loggerx.NewLogger(ctx),
|
2025-07-27 22:13:01 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-21 14:01:43 +08:00
|
|
|
type Option func(*Options)
|
2025-07-27 22:13:01 +08:00
|
|
|
|
|
|
|
|
// 设置日志
|
|
|
|
|
func SetLogger(logger loggerx.LoggerInterface) Option {
|
2025-11-21 14:01:43 +08:00
|
|
|
return func(o *Options) {
|
2025-08-10 21:17:10 +08:00
|
|
|
o.Logger = logger
|
2025-07-27 22:13:01 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-21 15:16:58 +08:00
|
|
|
func SetEmialConfig(emialConfig EmialConfig) Option {
|
|
|
|
|
return func(o *Options) {
|
|
|
|
|
o.EmialConfig = emialConfig
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-10 21:17:10 +08:00
|
|
|
func SetSmtp(smtp *EmailConfigDataSmtp) Option {
|
2025-11-21 14:01:43 +08:00
|
|
|
return func(o *Options) {
|
2025-08-10 21:17:10 +08:00
|
|
|
o.Smtp = smtp
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-07-27 22:13:01 +08:00
|
|
|
|
2025-08-10 21:17:10 +08:00
|
|
|
func SetAws(aws *EmailConfigDataAws) Option {
|
2025-11-21 14:01:43 +08:00
|
|
|
return func(o *Options) {
|
2025-08-10 21:17:10 +08:00
|
|
|
o.Aws = aws
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-07-27 22:13:01 +08:00
|
|
|
|
2025-08-10 21:17:10 +08:00
|
|
|
func SetAliyun(aliyun *EmialConfigDataAliyun) Option {
|
2025-11-21 14:01:43 +08:00
|
|
|
return func(o *Options) {
|
2025-08-10 21:17:10 +08:00
|
|
|
o.Aliyun = aliyun
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-07-27 22:13:01 +08:00
|
|
|
|
2025-08-10 21:17:10 +08:00
|
|
|
func SetMailgun(mailgun *EmialConfigDataMailgun) Option {
|
2025-11-21 14:01:43 +08:00
|
|
|
return func(o *Options) {
|
2025-08-10 21:17:10 +08:00
|
|
|
o.Mailgun = mailgun
|
|
|
|
|
}
|
|
|
|
|
}
|