fix(smtp): force enabling SSL does not work (#2777)

master 4.5.1
Aaron Liu 2025-08-13 18:54:56 +08:00
parent f73583b370
commit 872b08e5da
2 changed files with 16 additions and 15 deletions

View File

@ -121,17 +121,17 @@ func (client *SMTPPool) Init() {
}
}()
tlsPolicy := mail.TLSOpportunistic
opts := []mail.Option{
mail.WithPort(client.config.Port),
mail.WithTimeout(time.Duration(client.config.Keepalive+5) * time.Second),
mail.WithSMTPAuth(mail.SMTPAuthAutoDiscover), mail.WithTLSPortPolicy(mail.TLSOpportunistic),
mail.WithUsername(client.config.User), mail.WithPassword(client.config.Password),
}
if client.config.ForceEncryption {
tlsPolicy = mail.TLSMandatory
opts = append(opts, mail.WithSSL())
}
d, diaErr := mail.NewClient(client.config.Host,
mail.WithPort(client.config.Port),
mail.WithTimeout(time.Duration(client.config.Keepalive+5)*time.Second),
mail.WithSMTPAuth(mail.SMTPAuthAutoDiscover), mail.WithTLSPortPolicy(tlsPolicy),
mail.WithUsername(client.config.User), mail.WithPassword(client.config.Password),
)
d, diaErr := mail.NewClient(client.config.Host, opts...)
if diaErr != nil {
client.l.Panic("Failed to create SMTP client: %s", diaErr)
return

View File

@ -139,15 +139,16 @@ func (s *TestSMTPService) Test(c *gin.Context) error {
return serializer.NewError(serializer.CodeParamErr, "Invalid SMTP port", err)
}
tlsPolicy := mail.TLSOpportunistic
if setting.IsTrueValue(s.Settings["smtpEncryption"]) {
tlsPolicy = mail.TLSMandatory
}
d, diaErr := mail.NewClient(s.Settings["smtpHost"],
opts := []mail.Option{
mail.WithPort(port),
mail.WithSMTPAuth(mail.SMTPAuthAutoDiscover), mail.WithTLSPortPolicy(tlsPolicy),
mail.WithSMTPAuth(mail.SMTPAuthAutoDiscover), mail.WithTLSPortPolicy(mail.TLSOpportunistic),
mail.WithUsername(s.Settings["smtpUser"]), mail.WithPassword(s.Settings["smtpPass"]),
)
}
if setting.IsTrueValue(s.Settings["smtpEncryption"]) {
opts = append(opts, mail.WithSSL())
}
d, diaErr := mail.NewClient(s.Settings["smtpHost"], opts...)
if diaErr != nil {
return serializer.NewError(serializer.CodeInternalSetting, "Failed to create SMTP client: "+diaErr.Error(), diaErr)
}