调整SetOptions的方式
This commit is contained in:
+7
-6
@@ -29,31 +29,32 @@ func NewMailGun() *MailGun {
|
||||
return mailgun
|
||||
}
|
||||
|
||||
func (l *MailGun) SetOption(ctx context.Context, opt ...interfaces.Option) (interfaces.EmailInterface, error) {
|
||||
func (l *MailGun) SetOption(ctx context.Context, opt ...interfaces.Option) error {
|
||||
for _, o := range opt {
|
||||
o(&l.Options)
|
||||
}
|
||||
|
||||
if l.Options.Mailgun == nil {
|
||||
return nil, fmt.Errorf("Mailgun configuration is required")
|
||||
return fmt.Errorf("Mailgun configuration is required")
|
||||
}
|
||||
|
||||
// 验证配置
|
||||
if err := l.validateConfig(); err != nil {
|
||||
return nil, fmt.Errorf("invalid Mailgun config: %w", err)
|
||||
return fmt.Errorf("invalid Mailgun config: %w", err)
|
||||
}
|
||||
|
||||
// 安全日志输出
|
||||
l.Options.Logger.Infof(ctx, "Mailgun configured - Domain:%s Sender:%s",
|
||||
l.Options.Logger.Infof(ctx, "Mailgun configured - Domain:%s Sender:%s",
|
||||
l.Options.Mailgun.Domain, l.Options.Mailgun.Sender)
|
||||
|
||||
l.mg = mailgun.NewMailgun(l.Options.Mailgun.Domain, l.Options.Mailgun.ApiKey)
|
||||
|
||||
return l, nil
|
||||
l.IsSet = true
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *MailGun) Send(ctx context.Context, params interfaces.Message) error {
|
||||
if l.mg == nil {
|
||||
if !l.IsSet {
|
||||
return fmt.Errorf("Mailgun client not initialized")
|
||||
}
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@ var (
|
||||
)
|
||||
|
||||
func TestSendEmail(t *testing.T) {
|
||||
gun := mailgun.NewMailGun()
|
||||
ini := mailgun.NewMailGun()
|
||||
ctx := context.Background()
|
||||
|
||||
ini, err := gun.SetOption(ctx, interfaces.SetMailgun(&interfaces.EmialConfigDataMailgun{
|
||||
err := ini.SetOption(ctx, interfaces.SetMailgun(&interfaces.EmialConfigDataMailgun{
|
||||
ApiKey: apikey,
|
||||
Domain: domain,
|
||||
Sender: sender,
|
||||
|
||||
Reference in New Issue
Block a user