diff --git a/emailer/smtp.go b/emailer/smtp.go
index 55f8bbe..d1fdbae 100644
--- a/emailer/smtp.go
+++ b/emailer/smtp.go
@@ -3,9 +3,9 @@ package emailer
 import (
 	"crypto/tls"
 	"fmt"
-	"time"
-
 	mail "github.com/xhit/go-simple-mail/v2"
+	"strings"
+	"time"
 )
 
 type SmtpMail struct {
@@ -14,6 +14,7 @@ type SmtpMail struct {
 	username   string
 	password   string
 	authType   mail.AuthType
+	encryption mail.Encryption
 	noTLSCheck bool
 	fromName   string
 	from       string
@@ -30,8 +31,21 @@ func authType(authType string) mail.AuthType {
 	}
 }
 
-func NewSmtpMail(hostname string, port int, username string, password string, noTLSCheck bool, auth string, fromName, from string) *SmtpMail {
-	ans := SmtpMail{hostname: hostname, port: port, username: username, password: password, noTLSCheck: noTLSCheck, fromName: fromName, from: from, authType: authType(auth)}
+func encryptionType(encryptionType string) mail.Encryption {
+	switch strings.ToUpper(encryptionType) {
+	case "SSL":
+		return mail.EncryptionSSL
+	case "SSLTLS":
+		return mail.EncryptionSSLTLS
+	case "TLS":
+		return mail.EncryptionTLS
+	default:
+		return mail.EncryptionSTARTTLS
+	}
+}
+
+func NewSmtpMail(hostname string, port int, username string, password string, noTLSCheck bool, auth string, fromName, from string, encryption string) *SmtpMail {
+	ans := SmtpMail{hostname: hostname, port: port, username: username, password: password, noTLSCheck: noTLSCheck, fromName: fromName, from: from, authType: authType(auth), encryption: encryptionType(encryption)}
 	return &ans
 }
 
@@ -50,7 +64,7 @@ func (o *SmtpMail) Send(toName string, to string, subject string, content string
 	server.Authentication = o.authType
 	server.Username = o.username
 	server.Password = o.password
-	server.Encryption = mail.EncryptionSTARTTLS
+	server.Encryption = o.encryption
 	server.KeepAlive = false
 	server.ConnectTimeout = 10 * time.Second
 	server.SendTimeout = 10 * time.Second
diff --git a/main.go b/main.go
index 5d916b7..84f1b78 100644
--- a/main.go
+++ b/main.go
@@ -33,6 +33,7 @@ var (
 	flagSmtpPassword   string
 	flagSmtpAuthType   string = "None"
 	flagSmtpNoTLSCheck bool   = false
+	flagSmtpEncryption string = "STARTTLS"
 	flagSendgridApiKey string
 	flagEmailFrom      string
 	flagEmailFromName  string = "WireGuard UI"
@@ -60,7 +61,8 @@ func init() {
 	flag.StringVar(&flagSmtpUsername, "smtp-username", util.LookupEnvOrString("SMTP_USERNAME", flagSmtpUsername), "SMTP Username")
 	flag.StringVar(&flagSmtpPassword, "smtp-password", util.LookupEnvOrString("SMTP_PASSWORD", flagSmtpPassword), "SMTP Password")
 	flag.BoolVar(&flagSmtpNoTLSCheck, "smtp-no-tls-check", util.LookupEnvOrBool("SMTP_NO_TLS_CHECK", flagSmtpNoTLSCheck), "Disable TLS verification for SMTP. This is potentially dangerous.")
-	flag.StringVar(&flagSmtpAuthType, "smtp-auth-type", util.LookupEnvOrString("SMTP_AUTH_TYPE", flagSmtpAuthType), "SMTP Auth Type : Plain or None.")
+	flag.StringVar(&flagSmtpEncryption, "smtp-encryption", util.LookupEnvOrString("SMTP_ENCRYPTION", flagSmtpEncryption), "SMTP Encryption : SSL, SSLTLS, TLS or STARTTLS (by default)")
+	flag.StringVar(&flagSmtpAuthType, "smtp-auth-type", util.LookupEnvOrString("SMTP_AUTH_TYPE", flagSmtpAuthType), "SMTP Auth Type : Plain, Login or None.")
 	flag.StringVar(&flagSendgridApiKey, "sendgrid-api-key", util.LookupEnvOrString("SENDGRID_API_KEY", flagSendgridApiKey), "Your sendgrid api key.")
 	flag.StringVar(&flagEmailFrom, "email-from", util.LookupEnvOrString("EMAIL_FROM_ADDRESS", flagEmailFrom), "'From' email address.")
 	flag.StringVar(&flagEmailFromName, "email-from-name", util.LookupEnvOrString("EMAIL_FROM_NAME", flagEmailFromName), "'From' email name.")
@@ -78,6 +80,7 @@ func init() {
 	util.SmtpPassword = flagSmtpPassword
 	util.SmtpAuthType = flagSmtpAuthType
 	util.SmtpNoTLSCheck = flagSmtpNoTLSCheck
+	util.SmtpEncryption = flagSmtpEncryption
 	util.SendgridApiKey = flagSendgridApiKey
 	util.EmailFrom = flagEmailFrom
 	util.EmailFromName = flagEmailFromName
@@ -138,7 +141,7 @@ func main() {
 	if util.SendgridApiKey != "" {
 		sendmail = emailer.NewSendgridApiMail(util.SendgridApiKey, util.EmailFromName, util.EmailFrom)
 	} else {
-		sendmail = emailer.NewSmtpMail(util.SmtpHostname, util.SmtpPort, util.SmtpUsername, util.SmtpPassword, util.SmtpNoTLSCheck, util.SmtpAuthType, util.EmailFromName, util.EmailFrom)
+		sendmail = emailer.NewSmtpMail(util.SmtpHostname, util.SmtpPort, util.SmtpUsername, util.SmtpPassword, util.SmtpNoTLSCheck, util.SmtpAuthType, util.EmailFromName, util.EmailFrom, util.SmtpEncryption)
 	}
 
 	app.GET(util.BasePath+"/_health", handler.Health())
diff --git a/util/config.go b/util/config.go
index 342d713..6a08904 100644
--- a/util/config.go
+++ b/util/config.go
@@ -11,6 +11,7 @@ var (
 	SmtpUsername   string
 	SmtpPassword   string
 	SmtpNoTLSCheck bool
+	SmtpEncryption string
 	SmtpAuthType   string
 	SendgridApiKey string
 	EmailFrom      string