From dd83b330ebfe0ec7c80a63c338046a30c17dd496 Mon Sep 17 00:00:00 2001 From: bjd Date: Fri, 22 Jan 2021 10:55:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E9=82=AE=E4=BB=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0ssl=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +++++++ admin/common.go | 4 +++- base/app_ver.go | 2 +- dbdata/group.go | 4 +++- dbdata/setting.go | 1 + screenshot/qq.png | Bin 0 -> 20725 bytes 6 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 screenshot/qq.png diff --git a/README.md b/README.md index ea47119..5cb41e0 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,13 @@ sh bridge-init.sh 相关软件下载: https://gitee.com/bjdgyc/anylink-soft +## Discussion + +![qq.png](https://gitee.com/bjdgyc/anylink/raw/master/screenshot/qq.png) + +添加QQ群: 567510628 + + ## Other Screenshot ![system.jpg](https://gitee.com/bjdgyc/anylink/raw/master/screenshot/system.jpg) diff --git a/admin/common.go b/admin/common.go index e8d31ea..98ee065 100644 --- a/admin/common.go +++ b/admin/common.go @@ -68,7 +68,9 @@ func SendMail(subject, to, htmlBody string) error { server.Port = dataSmtp.Port server.Username = dataSmtp.Username server.Password = dataSmtp.Password - // server.Encryption = mail.EncryptionTLS + if dataSmtp.UseSSl { + server.Encryption = mail.EncryptionSSL + } // Since v2.3.0 you can specified authentication type: // - PLAIN (default) diff --git a/base/app_ver.go b/base/app_ver.go index 77d6a69..9f285e4 100644 --- a/base/app_ver.go +++ b/base/app_ver.go @@ -2,5 +2,5 @@ package base const ( APP_NAME = "AnyLink" - APP_VER = "0.0.8" + APP_VER = "0.0.9" ) diff --git a/dbdata/group.go b/dbdata/group.go index 360950e..419b8ee 100644 --- a/dbdata/group.go +++ b/dbdata/group.go @@ -18,13 +18,15 @@ type GroupLinkAcl struct { // 自上而下匹配 默认 allow * * Action string `json:"action"` // allow、deny Val string `json:"val"` - Port uint8 `json:"port"` + Port uint16 `json:"port"` IpNet *net.IPNet `json:"ip_net"` + Note string `json:"note"` } type ValData struct { Val string `json:"val"` IpMask string `json:"ip_mask"` + Note string `json:"note"` } type Group struct { diff --git a/dbdata/setting.go b/dbdata/setting.go index acc89f0..5db2f81 100644 --- a/dbdata/setting.go +++ b/dbdata/setting.go @@ -38,6 +38,7 @@ type SettingSmtp struct { Username string `json:"username"` Password string `json:"password"` From string `json:"from"` + UseSSl bool `json:"use_ssl"` } type SettingOther struct { diff --git a/screenshot/qq.png b/screenshot/qq.png new file mode 100644 index 0000000000000000000000000000000000000000..50e1fac5539c03ef1b7e0ea10b2ce2ae4a48c05a GIT binary patch literal 20725 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 Ce(N~^ literal 0 HcmV?d00001