Files
mailx/interfaces/options.go
T

57 lines
1.1 KiB
Go
Raw Normal View History

2025-07-27 22:13:01 +08:00
package interfaces
import (
"context"
"github.com/yuninks/loggerx"
)
2025-11-21 11:48:53 +08:00
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-11-21 11:48:53 +08:00
func DefaultOptions() EmailOption {
2025-07-27 22:13:01 +08:00
ctx := context.Background()
2025-11-21 11:48:53 +08:00
return EmailOption{
2025-08-10 21:17:10 +08:00
Logger: loggerx.NewLogger(ctx),
2025-07-27 22:13:01 +08:00
}
}
2025-11-21 11:48:53 +08:00
type Option func(*EmailOption)
2025-07-27 22:13:01 +08:00
// 设置日志
func SetLogger(logger loggerx.LoggerInterface) Option {
2025-11-21 11:48:53 +08:00
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 {
2025-11-21 11:48:53 +08:00
return func(o *EmailOption) {
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 11:48:53 +08:00
return func(o *EmailOption) {
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 11:48:53 +08:00
return func(o *EmailOption) {
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 11:48:53 +08:00
return func(o *EmailOption) {
2025-08-10 21:17:10 +08:00
o.Mailgun = mailgun
}
}