diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3aad7eb9..34f80c7e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# 更新日志
+## v4.0.5
+
+* 功能优化:已授权系统在后台显示授权信息
+* 功能优化:使用思维链提示词生成思维导图,确保生成的思维导图不会出现格式错误
+* 功能优化:优化首页登录注册页面的 UI
+* BUG修复:修复License验证的逻辑漏洞
+* 功能优化:支持点卡充值设置有效期
+
## v4.0.4
* Bug修复:修复统一千问第二句不回复的问题
diff --git a/api/config.sample.toml b/api/config.sample.toml
index 1f7849d5..2b9642de 100644
--- a/api/config.sample.toml
+++ b/api/config.sample.toml
@@ -108,7 +108,8 @@ WeChatBot = false
ApiURL = "https://api.xunhupay.com"
NotifyURL = "https://ai.r9it.com/api/payment/hupipay/notify"
-[SmtpConfig] # 注意,阿里云服务器禁用了25号端口,所以如果需要使用邮件功能,请别用阿里云服务器
+[SmtpConfig] # 注意,阿里云服务器禁用了25号端口,请使用 465 端口,并开启 TLS 连接
+ UseTls = false
Host = "smtp.163.com"
Port = 25
AppName = "极客学长"
diff --git a/api/handler/user_handler.go b/api/handler/user_handler.go
index f86e0ed6..29692cc8 100644
--- a/api/handler/user_handler.go
+++ b/api/handler/user_handler.go
@@ -71,7 +71,7 @@ func (h *UserHandler) Register(c *gin.Context) {
// 检查验证码
var key string
- if data.RegWay == "email" || data.RegWay == "mobile" || data.Code != "" {
+ if data.RegWay == "email" || data.RegWay == "mobile" {
key = CodeStorePrefix + data.Username
code, err := h.redis.Get(c, key).Result()
if err != nil || code != data.Code {
diff --git a/deploy/conf/config.toml b/deploy/conf/config.toml
index bb400251..c47046ee 100644
--- a/deploy/conf/config.toml
+++ b/deploy/conf/config.toml
@@ -110,7 +110,8 @@ WeChatBot = false
ApiURL = "https://api.xunhupay.com"
NotifyURL = "https://ai.r9it.com/api/payment/hupipay/notify"
-[SmtpConfig] # 注意,阿里云服务器禁用了25号端口,所以如果需要使用邮件功能,请别用阿里云服务器
+[SmtpConfig] # 注意,阿里云服务器禁用了25号端口,请使用 465 端口,并开启 TLS 连接
+ UseTls = false
Host = "smtp.163.com"
Port = 25
AppName = "极客学长"
diff --git a/web/src/components/LoginDialog.vue b/web/src/components/LoginDialog.vue
index d2f639b7..6d28152f 100644
--- a/web/src/components/LoginDialog.vue
+++ b/web/src/components/LoginDialog.vue
@@ -106,7 +106,7 @@
autocomplete="off">