浏览代码

feat: support custom SMTP port setting (#45)

* feat: support custom SMTP port setting

* fix: send SMTPPort value to frontend

---------

Co-authored-by: JustSong <[email protected]>
snowmeow 2 年之前
父节点
当前提交
6b15b2080e
共有 4 个文件被更改,包括 21 次插入1 次删除
  1. 1 0
      common/constants.go
  2. 1 1
      common/email.go
  3. 4 0
      model/option.go
  4. 15 0
      web/src/components/SystemSetting.js

+ 1 - 0
common/constants.go

@@ -33,6 +33,7 @@ var MessagePersistenceEnabled = true
 var MessageRenderEnabled = true
 
 var SMTPServer = ""
+var SMTPPort = 587
 var SMTPAccount = ""
 var SMTPToken = ""
 

+ 1 - 1
common/email.go

@@ -8,7 +8,7 @@ func SendEmail(subject string, receiver string, content string) error {
 	m.SetHeader("To", receiver)
 	m.SetHeader("Subject", subject)
 	m.SetBody("text/html", content)
-	d := gomail.NewDialer(SMTPServer, 587, SMTPAccount, SMTPToken)
+	d := gomail.NewDialer(SMTPServer, SMTPPort, SMTPAccount, SMTPToken)
 	err := d.DialAndSend(m)
 	return err
 }

+ 4 - 0
model/option.go

@@ -36,6 +36,7 @@ func InitOptionMap() {
 	common.OptionMap["MessageRenderEnabled"] = strconv.FormatBool(common.MessageRenderEnabled)
 	common.OptionMap["SMTPServer"] = ""
 	common.OptionMap["SMTPAccount"] = ""
+	common.OptionMap["SMTPPort"] = strconv.Itoa(common.SMTPPort)
 	common.OptionMap["SMTPToken"] = ""
 	common.OptionMap["Notice"] = ""
 	common.OptionMap["About"] = ""
@@ -114,6 +115,9 @@ func updateOptionMap(key string, value string) {
 	switch key {
 	case "SMTPServer":
 		common.SMTPServer = value
+	case "SMTPPort":
+		intValue, _ := strconv.Atoi(value)
+		common.SMTPPort = intValue
 	case "SMTPAccount":
 		common.SMTPAccount = value
 	case "SMTPToken":

+ 15 - 0
web/src/components/SystemSetting.js

@@ -12,6 +12,7 @@ const SystemSetting = () => {
     GitHubClientSecret: '',
     Notice: '',
     SMTPServer: '',
+    SMTPPort: '',
     SMTPAccount: '',
     SMTPToken: '',
     ServerAddress: '',
@@ -110,6 +111,12 @@ const SystemSetting = () => {
     if (originInputs['SMTPAccount'] !== inputs.SMTPAccount) {
       await updateOption('SMTPAccount', inputs.SMTPAccount);
     }
+    if (
+        originInputs['SMTPPort'] !== inputs.SMTPPort &&
+        inputs.SMTPPort !== ''
+    ) {
+      await updateOption('SMTPPort', inputs.SMTPPort);
+    }
     if (
       originInputs['SMTPToken'] !== inputs.SMTPToken &&
       inputs.SMTPToken !== ''
@@ -259,6 +266,14 @@ const SystemSetting = () => {
               value={inputs.SMTPServer}
               placeholder='例如:smtp.qq.com'
             />
+            <Form.Input
+                label='SMTP 端口'
+                name='SMTPPort'
+                onChange={handleInputChange}
+                autoComplete='off'
+                value={inputs.SMTPPort}
+                placeholder='默认: 587'
+            />
             <Form.Input
               label='SMTP 账户'
               name='SMTPAccount'