mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-11-11 03:33:48 +08:00
feat: email registration function is ready
This commit is contained in:
@@ -49,3 +49,5 @@ func (s *AliYunSmsService) SendVerifyCode(mobile string, code int) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
var _ SmsService = &AliYunSmsService{}
|
||||
|
||||
44
api/service/smtp_sms_service.go
Normal file
44
api/service/smtp_sms_service.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"chatplus/core/types"
|
||||
"fmt"
|
||||
"mime"
|
||||
"net/smtp"
|
||||
)
|
||||
|
||||
type SmtpService struct {
|
||||
config *types.SmtpConfig
|
||||
}
|
||||
|
||||
func NewSmtpService(appConfig *types.AppConfig) *SmtpService {
|
||||
return &SmtpService{
|
||||
config: &appConfig.SmtpConfig,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *SmtpService) SendVerifyCode(to string, code int) error {
|
||||
subject := "ChatPlus注册验证码"
|
||||
body := fmt.Sprintf("您正在注册 ChatPlus AI 助手账户,注册验证码为 %d,请不要告诉他人。如非本人操作,请忽略此邮件。", code)
|
||||
|
||||
// 设置SMTP客户端配置
|
||||
auth := smtp.PlainAuth("", s.config.From, s.config.Password, s.config.Host)
|
||||
|
||||
// 对主题进行MIME编码
|
||||
encodedSubject := mime.QEncoding.Encode("UTF-8", subject)
|
||||
// 组装邮件
|
||||
message := bytes.NewBuffer(nil)
|
||||
message.WriteString(fmt.Sprintf("From: \"%s\" <%s>\r\n", s.config.AppName, s.config.From))
|
||||
message.WriteString(fmt.Sprintf("To: %s\r\n", to))
|
||||
message.WriteString(fmt.Sprintf("Subject: %s\r\n", encodedSubject))
|
||||
message.WriteString("\r\n" + body)
|
||||
|
||||
// 发送邮件
|
||||
// 发送邮件
|
||||
err := smtp.SendMail(s.config.Host+":"+fmt.Sprint(s.config.Port), auth, s.config.From, []string{to}, message.Bytes())
|
||||
if err != nil {
|
||||
return fmt.Errorf("error sending email: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -96,7 +96,7 @@ func (e *XXLJobExecutor) ResetVipCalls(cxt context.Context, param *xxl.RunReq) (
|
||||
for _, u := range users {
|
||||
// 账号到期,直接清零
|
||||
if u.ExpiredTime <= currentTime.Unix() {
|
||||
logger.Info("账号过期:", u.Mobile)
|
||||
logger.Info("账号过期:", u.Username)
|
||||
u.Calls = 0
|
||||
u.Vip = false
|
||||
} else {
|
||||
@@ -133,7 +133,7 @@ func (e *XXLJobExecutor) ResetVipCalls(cxt context.Context, param *xxl.RunReq) (
|
||||
} else {
|
||||
u.ImgCalls = u.ImgCalls + config.VipMonthImgCalls
|
||||
}
|
||||
logger.Infof("%s 点卡结余:%d", u.Mobile, calls)
|
||||
logger.Infof("%s 点卡结余:%d", u.Username, calls)
|
||||
}
|
||||
u.Tokens = 0
|
||||
// update user
|
||||
|
||||
Reference in New Issue
Block a user