调整接口
This commit is contained in:
+23
-15
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user