调整SetOptions的方式

This commit is contained in:
Yun
2025-11-21 15:54:49 +08:00
parent 04bdd98d6f
commit eeaa518fc3
17 changed files with 90 additions and 86 deletions
+7 -6
View File
@@ -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")
}
+2 -2
View File
@@ -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,