45 lines
1.6 KiB
Plaintext
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": "邮件发送失败"} |