From 5f3e0c31be918c57c8f6f1618c0b6a68fecf1084 Mon Sep 17 00:00:00 2001 From: wcq <744800102@qq.com> Date: Sun, 8 Oct 2023 17:00:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E6=88=90=E9=82=AE=E4=BB=B6=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/wd-rating.iml | 2 +- mods/system/router.py | 8 ++++++-- utils/email_utils.py | 28 +++++++++++++++++++++++++++- utils/verify_code_utils.py | 4 ++-- 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/.idea/wd-rating.iml b/.idea/wd-rating.iml index 5ed0139..326da4b 100644 --- a/.idea/wd-rating.iml +++ b/.idea/wd-rating.iml @@ -2,7 +2,7 @@ - + diff --git a/mods/system/router.py b/mods/system/router.py index 8fd5580..0a475c9 100644 --- a/mods/system/router.py +++ b/mods/system/router.py @@ -1,15 +1,19 @@ +from copy import deepcopy from fastapi import APIRouter, Depends from context.common import conf_file_path, conf, auth_util from . import schemas -router = APIRouter(prefix="/system", dependencies=[Depends(auth_util.token_data_depend)]) +router = APIRouter( + prefix="/system", dependencies=[Depends(auth_util.token_data_depend)]) @router.post("/setting/get", response_model=schemas.SettingGetRes) def setting_get(): conf.read(conf_file_path, encoding='utf-8-sig') - return schemas.SettingGetRes(data=conf._sections) + data = deepcopy(conf._sections) + data = {k: v for k, v in data.items() if k in ['rate_utils']} + return schemas.SettingGetRes(data=data) @router.post("/setting/update_item") diff --git a/utils/email_utils.py b/utils/email_utils.py index b4e9a91..0d9b04f 100644 --- a/utils/email_utils.py +++ b/utils/email_utils.py @@ -1,6 +1,8 @@ +import asyncio import json import requests import re +from fastapi_mail import FastMail, MessageSchema, ConnectionConfig, MessageType def email_check(email: str): @@ -20,5 +22,29 @@ def send_email(title: str, email: str, msg_body: str, email_api="http://email_ap "recipients": [email], "msg_body": msg_body, } - res = requests.post(url=email_api + '/send_mail', headers=headers, data=json.dumps(data), timeout=5) + res = requests.post(url=email_api + '/send_mail', + headers=headers, data=json.dumps(data), timeout=5) return res.status_code == 200 + + +conf = ConnectionConfig( + MAIL_USERNAME="dogbillions@163.com", + MAIL_PASSWORD="RMRMGULXYJHRMATM", + MAIL_FROM="dogbillions@163.com", + MAIL_PORT=25, + MAIL_SERVER="smtp.163.com", + MAIL_FROM_NAME="维德团队", + MAIL_STARTTLS=True, + MAIL_SSL_TLS=False, + USE_CREDENTIALS=True, + VALIDATE_CERTS=True) + +fm = FastMail(conf) + + +def send_mail(title: str, email: str, msg_body: str,sender="维德团队"): + message = MessageSchema( + subject=title, + body=f"

{msg_body}

", + subtype=MessageType.html, recipients=[email]) + asyncio.run(fm.send_message(message)) diff --git a/utils/verify_code_utils.py b/utils/verify_code_utils.py index 77e33ed..1727f20 100644 --- a/utils/verify_code_utils.py +++ b/utils/verify_code_utils.py @@ -3,7 +3,7 @@ import uuid import requests from enum import Enum from captcha.image import ImageCaptcha -from utils.email_utils import send_email +from utils.email_utils import send_email,send_mail from utils.random_utils import get_random_num_code, get_random_letter_and_num_code from utils.redis_utils import RedisPool @@ -78,7 +78,7 @@ class EmailVerifyCode: title = "修改信息验证码" elif verify_type == EmailVerifyType.reset_password: title = "修改密码验证码" - send_email(title, email, code) + send_mail(title, email, code) def check_code(self, email, code, verify_type: EmailVerifyType = EmailVerifyType.login): email_id = self.get_email_id(email, verify_type)