Files
SMANAGE/backup/_api_backup/TempLateAPI/GERP/API/AccountActivation/SendAccountActivationCode.api
T

45 lines
1.6 KiB
Plaintext

from PDAPI import *
__metadata__ = {
"methods": ["POST"],
"blueprint": "GERP",
"permission": 1.0,
"attributes": [],
"limit": "1 per minute"
}
SmtpConfig = {
"smtpServer": "smtp.gvsds.com",
"smtpPort": 465,
"senderEmail": "verify@gvsds.com",
"senderPassword": "198314qwe",
"senderName": "GVSDS_Verify <verify@gvsds.com>"
}
ES = EmailSender(**SmtpConfig)
def HandleRequest():
ELTUser: GERPUser = flask.g.ELTUser
if ELTUser.UserEmailVerify:
return {"code": 2, "message": "已验证"}
if re.fullmatch(r'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$', ELTUser.UserEmail) is None:
return {"code": 1, "message": "邮箱不符合格式"}
DeleteStmt = sqlalchemy.delete(AccountActivation).where(AccountActivation.UserUUID == ELTUser.UserUUID)
try:
db.session.execute(DeleteStmt)
db.session.commit()
except:
db.session.rollback()
_ = AccountActivation()
_.UserUUID = ELTUser.UserUUID
RKEY = RandomAccountActivationNumber()
_.AccountActivationCode = bytes.fromhex(str(RKEY))
try:
db.session.add(_)
db.session.commit()
except:
print(traceback.format_exc())
db.session.rollback()
return {"code": 1, "message": "验证代码服务器同步失败"}
Receivers = [ELTUser.UserEmail]
if ES.SendHtmlEmail(Receivers, "GVSDS 银河锋锐 邮箱验证代码", openr(JoinPath(TempLate, "GERP/AccountActivation/Email.html")).replace("{{ Code }}", str(RKEY))):
return {"code": 0}
return {"code": 1, "message": "邮件发送失败"}