diff --git a/services/verify/main.py b/services/verify/main.py index 5e0e606..5c056e4 100644 --- a/services/verify/main.py +++ b/services/verify/main.py @@ -16,6 +16,7 @@ from flask import request import verify +import send app = flask.Flask(__name__) @@ -26,9 +27,10 @@ def newVerify(): [内部] 进行一个新的验证 [Request] - method: str = [email] + method: str (one of [email]) + target: str (e.g. "test@openteens.org") session: str - callbackURI: str (建议使用绝对路径) + callbackURI: str (建议使用带https的绝对路径) [Response] { @@ -36,16 +38,17 @@ def newVerify(): } """ method = request.args.get("method") + target = request.args.get("target") session = request.args.get("session") callbackURI = request.args.get("callbackURI") code = verify.genOutsideCode(session, callbackURI) if method == "email": - # [TODO]: Send Email - print("Send Email:", code) - pass - + send.sendEmail(target, code) + else: + return {"code": -1} + return {"code": 0} @@ -55,7 +58,7 @@ def verifyOutsideCode(): [外部] 验证外部验证码 [Request] - code: str + code: str (外部验证码) [Response] Redirect @@ -83,7 +86,7 @@ def verifyInsideCode(): [内部] 验证内部验证码 [Request] - code: str + code: str (内部验证码) [Response] { diff --git a/services/verify/send.py b/services/verify/send.py new file mode 100644 index 0000000..bcdba7c --- /dev/null +++ b/services/verify/send.py @@ -0,0 +1,161 @@ +def sendEmail(target, code): + """ + 发送验证邮件 + """ + + template = """ + + + + + 邮箱验证码 + + + + + + + + + +
+
+ + +
+
+
+
+ 尊敬的用户:您好! + + 您正在进行邮箱验证,请点击以下链接完成验证: + + 若不是您在操作,请忽略此邮件。 +
+ + 如果您无法点击以上链接,请将此链接复制到浏览器地址栏中访问。 + https://api.openteens.org/userVerify?code={} + +
+
+
+
+
+

此为系统邮件,请勿回复
+

+

—— OpenTeens 社区

+
+
+
+ + """ + + title = "OpenTeens 邮箱验证" + from_ = "OpenTeens " + to = target + content = template.format(code, code, code) + + diff --git a/services/verify/verify.py b/services/verify/verify.py index a15f473..b8947a5 100644 --- a/services/verify/verify.py +++ b/services/verify/verify.py @@ -1,4 +1,5 @@ import time + import db import utils