From 17653888a38e70c404bbe1a606ffa2c71f7ec935 Mon Sep 17 00:00:00 2001 From: hsluoyz Date: Mon, 20 Jan 2025 03:17:09 +0800 Subject: [PATCH] feat: refactor the TestSmtpServer code --- controllers/service.go | 2 +- object/email.go | 36 +++++++++--------------------------- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/controllers/service.go b/controllers/service.go index fc688fb0..4e7674c0 100644 --- a/controllers/service.go +++ b/controllers/service.go @@ -93,7 +93,7 @@ func (c *ApiController) SendEmail() { // when receiver is the reserved keyword: "TestSmtpServer", it means to test the SMTP server instead of sending a real Email if len(emailForm.Receivers) == 1 && emailForm.Receivers[0] == "TestSmtpServer" { - err = object.DailSmtpServer(provider) + err = object.TestSmtpServer(provider) if err != nil { c.ResponseError(err.Error()) return diff --git a/object/email.go b/object/email.go index 7c0ca411..1c0417d8 100644 --- a/object/email.go +++ b/object/email.go @@ -16,23 +16,18 @@ package object -import ( - "crypto/tls" +import "github.com/casdoor/casdoor/email" - "github.com/casdoor/casdoor/email" - "github.com/casdoor/gomail/v2" -) - -func getDialer(provider *Provider) *gomail.Dialer { - dialer := &gomail.Dialer{} - dialer = gomail.NewDialer(provider.Host, provider.Port, provider.ClientId, provider.ClientSecret) - if provider.Type == "SUBMAIL" { - dialer.TLSConfig = &tls.Config{InsecureSkipVerify: true} +// TestSmtpServer Test the SMTP server +func TestSmtpServer(provider *Provider) error { + smtpEmailProvider := email.NewSmtpEmailProvider(provider.ClientId, provider.ClientSecret, provider.Host, provider.Port, provider.Type, provider.DisableSsl) + sender, err := smtpEmailProvider.Dialer.Dial() + if err != nil { + return err } + defer sender.Close() - dialer.SSL = !provider.DisableSsl - - return dialer + return nil } func SendEmail(provider *Provider, title string, content string, dest string, sender string) error { @@ -50,16 +45,3 @@ func SendEmail(provider *Provider, title string, content string, dest string, se return emailProvider.Send(fromAddress, fromName, dest, title, content) } - -// DailSmtpServer Dail Smtp server -func DailSmtpServer(provider *Provider) error { - dialer := getDialer(provider) - - sender, err := dialer.Dial() - if err != nil { - return err - } - defer sender.Close() - - return nil -}