feat: refactor the TestSmtpServer code

This commit is contained in:
hsluoyz 2025-01-20 03:17:09 +08:00
parent ee16616df4
commit 17653888a3
2 changed files with 10 additions and 28 deletions

View File

@ -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 // 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" { if len(emailForm.Receivers) == 1 && emailForm.Receivers[0] == "TestSmtpServer" {
err = object.DailSmtpServer(provider) err = object.TestSmtpServer(provider)
if err != nil { if err != nil {
c.ResponseError(err.Error()) c.ResponseError(err.Error())
return return

View File

@ -16,23 +16,18 @@
package object package object
import ( import "github.com/casdoor/casdoor/email"
"crypto/tls"
"github.com/casdoor/casdoor/email" // TestSmtpServer Test the SMTP server
"github.com/casdoor/gomail/v2" 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()
func getDialer(provider *Provider) *gomail.Dialer { if err != nil {
dialer := &gomail.Dialer{} return err
dialer = gomail.NewDialer(provider.Host, provider.Port, provider.ClientId, provider.ClientSecret)
if provider.Type == "SUBMAIL" {
dialer.TLSConfig = &tls.Config{InsecureSkipVerify: true}
} }
defer sender.Close()
dialer.SSL = !provider.DisableSsl return nil
return dialer
} }
func SendEmail(provider *Provider, title string, content string, dest string, sender string) error { 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) 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
}