瀏覽代碼

generalise smtp config

abhishek9686 1 年之前
父節點
當前提交
3377844ddd
共有 3 個文件被更改,包括 20 次插入3 次删除
  1. 7 1
      pro/email/email.go
  2. 2 1
      pro/email/smtp.go
  3. 11 1
      servercfg/serverconf.go

+ 7 - 1
pro/email/email.go

@@ -18,12 +18,18 @@ const (
 func init() {
 	switch EmailSenderType(servercfg.EmailSenderType()) {
 	case Smtp:
-		client = &SmtpSender{
+		smtpSender := &SmtpSender{
 			SmtpHost:    servercfg.GetSmtpHost(),
 			SmtpPort:    servercfg.GetSmtpPort(),
 			SenderEmail: servercfg.GetSenderEmail(),
+			SendUser:    servercfg.GetSenderUser(),
 			SenderPass:  servercfg.GetEmaiSenderAuth(),
 		}
+		if smtpSender.SendUser == "" {
+			smtpSender.SendUser = smtpSender.SenderEmail
+		}
+		client = smtpSender
+
 	case Resend:
 		client = NewResendEmailSenderFromConfig()
 	}

+ 2 - 1
pro/email/smtp.go

@@ -11,6 +11,7 @@ type SmtpSender struct {
 	SmtpHost    string
 	SmtpPort    int
 	SenderEmail string
+	SendUser    string
 	SenderPass  string
 }
 
@@ -27,7 +28,7 @@ func (s *SmtpSender) SendEmail(ctx context.Context, n Notification, e Mail) erro
 	// Set E-Mail body. You can set plain text or html with text/html
 	m.SetBody("text/html", e.GetBody(n))
 	// Settings for SMTP server
-	d := gomail.NewDialer(s.SmtpHost, s.SmtpPort, s.SenderEmail, s.SenderPass)
+	d := gomail.NewDialer(s.SmtpHost, s.SmtpPort, s.SendUser, s.SenderPass)
 
 	// This is only needed when SSL/TLS certificate is not valid on server.
 	// In production this should be set to false.

+ 11 - 1
servercfg/serverconf.go

@@ -275,9 +275,19 @@ func GetSenderEmail() string {
 	return v
 }
 
+func GetSenderUser() string {
+	v := ""
+	if fromEnv := os.Getenv("EMAIL_SENDER_USER"); fromEnv != "" {
+		v = fromEnv
+	} else if fromCfg := config.Config.Server.EmailSenderAddr; fromCfg != "" {
+		v = fromCfg
+	}
+	return v
+}
+
 func GetEmaiSenderAuth() string {
 	v := ""
-	if fromEnv := os.Getenv("EMAIL_SENDER_AUTH"); fromEnv != "" {
+	if fromEnv := os.Getenv("EMAIL_SENDER_PASSWORD"); fromEnv != "" {
 		v = fromEnv
 	} else if fromCfg := config.Config.Server.EmailSenderAddr; fromCfg != "" {
 		v = fromCfg