调整接口

This commit is contained in:
Yun
2025-08-10 21:17:10 +08:00
parent bbeea058d0
commit 12da33399b
12 changed files with 244 additions and 150 deletions
+23 -15
View File
@@ -13,7 +13,6 @@ import (
"time"
"code.yun.ink/pkg/mailx/interfaces"
"github.com/yuninks/loggerx"
)
// 邮件发送的封装
@@ -22,27 +21,36 @@ import (
type Smtp struct {
interfaces.DefaultEmail
params *interfaces.EmailConfigDataSmtp
auth smtp.Auth
logger loggerx.LoggerInterface
// params *interfaces.EmailConfigDataSmtp
auth smtp.Auth
// logger loggerx.LoggerInterface
}
func (l *Smtp) InitEmail(ctx context.Context, params interfaces.EmailConfigData, logger loggerx.LoggerInterface) (interfaces.Email, error) {
func NewSmtp() *Smtp {
smtp := &Smtp{}
smtp.Options = interfaces.DefaultOptions()
smtp.EmailType = "Smtp"
return smtp
}
if params.Smtp == nil {
func (l *Smtp) SetOption(ctx context.Context, opt ...interfaces.Option) (interfaces.EmailInterface, error) {
for _, o := range opt {
o(&l.Options)
}
l.Options.Logger.Infof(ctx, "params:%+v", l.Options.Smtp)
if l.Options.Smtp == nil {
return nil, errors.New("not smtp")
}
l.logger.Infof(ctx, "params:%+v", params.Smtp)
m := &Smtp{
params: params.Smtp,
}
m.auth = smtp.PlainAuth("", params.Smtp.Username, params.Smtp.Password, params.Smtp.Host)
return m, nil
l.auth = smtp.PlainAuth("", l.Options.Smtp.Username, l.Options.Smtp.Password, l.Options.Smtp.Host)
return l, nil
}
func (l *Smtp) Send(ctx context.Context, message interfaces.Message) error {
if l.params == nil {
if l.Options.Smtp == nil {
return errors.New("not init")
}
// .Auth()
@@ -55,7 +63,7 @@ func (l *Smtp) Send(ctx context.Context, message interfaces.Message) error {
if message.Form != "" {
Header["From"] = message.Form
} else {
Header["From"] = l.params.Username
Header["From"] = l.Options.Smtp.Username
}
if len(message.To) > 0 {
@@ -140,7 +148,7 @@ func (l *Smtp) Send(ctx context.Context, message interfaces.Message) error {
buffer.WriteString("\r\n--" + boundary + "--\r\n")
b := buffer.Bytes()
err := smtp.SendMail(l.params.Host+":"+l.params.Port, l.auth, l.params.Username, message.To, b)
err := smtp.SendMail(l.Options.Smtp.Host+":"+l.Options.Smtp.Port, l.auth, l.Options.Smtp.Username, message.To, b)
return err
}