diff --git a/interfaces/consts.go b/interfaces/consts.go index 2f29b5c..ff01fd2 100644 --- a/interfaces/consts.go +++ b/interfaces/consts.go @@ -1,6 +1,5 @@ package interfaces - type EmailType string const ( @@ -10,6 +9,13 @@ const ( EmailTypeSmtp EmailType = "smtp" ) +type EmialConfig struct { + Smtp *EmailConfigDataSmtp `json:"smtp,omitempty"` // smtp + Aws *EmailConfigDataAws `json:"aws,omitempty"` // 亚马逊 + Aliyun *EmialConfigDataAliyun `json:"aliyun,omitempty"` // 阿里云 + Mailgun *EmialConfigDataMailgun `json:"mailgun,omitempty"` // mailgun +} + type EmialConfigDataMailgun struct { ApiKey string `json:"api_key"` // mailgun api key Domain string `json:"domain"` // mailgun domain diff --git a/interfaces/options.go b/interfaces/options.go index 497c5f5..91231b0 100644 --- a/interfaces/options.go +++ b/interfaces/options.go @@ -9,10 +9,7 @@ import ( type Options struct { Logger loggerx.LoggerInterface - Smtp *EmailConfigDataSmtp `json:"smtp,omitempty"` // smtp - Aws *EmailConfigDataAws `json:"aws,omitempty"` // 亚马逊 - Aliyun *EmialConfigDataAliyun `json:"aliyun,omitempty"` // 阿里云 - Mailgun *EmialConfigDataMailgun `json:"mailgun,omitempty"` // mailgun + EmialConfig } func DefaultOptions() Options { @@ -31,6 +28,12 @@ func SetLogger(logger loggerx.LoggerInterface) Option { } } +func SetEmialConfig(emialConfig EmialConfig) Option { + return func(o *Options) { + o.EmialConfig = emialConfig + } +} + func SetSmtp(smtp *EmailConfigDataSmtp) Option { return func(o *Options) { o.Smtp = smtp