Files
mailx/interfaces/options.go
T
2025-11-21 15:16:58 +08:00

60 lines
944 B
Go

package interfaces
import (
"context"
"github.com/yuninks/loggerx"
)
type Options struct {
Logger loggerx.LoggerInterface
EmialConfig
}
func DefaultOptions() Options {
ctx := context.Background()
return Options{
Logger: loggerx.NewLogger(ctx),
}
}
type Option func(*Options)
// 设置日志
func SetLogger(logger loggerx.LoggerInterface) Option {
return func(o *Options) {
o.Logger = logger
}
}
func SetEmialConfig(emialConfig EmialConfig) Option {
return func(o *Options) {
o.EmialConfig = emialConfig
}
}
func SetSmtp(smtp *EmailConfigDataSmtp) Option {
return func(o *Options) {
o.Smtp = smtp
}
}
func SetAws(aws *EmailConfigDataAws) Option {
return func(o *Options) {
o.Aws = aws
}
}
func SetAliyun(aliyun *EmialConfigDataAliyun) Option {
return func(o *Options) {
o.Aliyun = aliyun
}
}
func SetMailgun(mailgun *EmialConfigDataMailgun) Option {
return func(o *Options) {
o.Mailgun = mailgun
}
}