Files
mailx/interfaces/options.go
T

60 lines
944 B
Go
Raw Normal View History

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
}
}