Bladeren bron

이메일 발송 테스트 기능

https://github.com/openNAMU/openNAMU/issues/2459
잉여개발기 1 jaar geleden
bovenliggende
commit
7670581355
5 gewijzigde bestanden met toevoegingen van 57 en 1 verwijderingen
  1. 1 0
      app.py
  2. 2 0
      route/__init__.py
  3. 16 0
      route/go_api_func_email.py
  4. 37 0
      route/main_setting_email_test.py
  5. 1 1
      route/main_setting_external.py

+ 1 - 0
app.py

@@ -914,6 +914,7 @@ app.route('/setting/sitemap', methods = ['POST', 'GET'])(main_setting_sitemap)
 app.route('/setting/sitemap_set', methods = ['POST', 'GET'])(main_setting_sitemap_set)
 app.route('/setting/skin_set', methods = ['POST', 'GET'])(main_setting_skin_set)
 app.route('/setting/404_page', methods = ['POST', 'GET'])(setting_404_page)
+app.route('/setting/email_test', methods = ['POST', 'GET'])(main_setting_email_test)
 
 app.route('/easter_egg')(main_func_easter_egg)
 

+ 2 - 0
route/__init__.py

@@ -78,6 +78,7 @@ from route.main_setting_sitemap import main_setting_sitemap
 from route.main_setting_sitemap_set import main_setting_sitemap_set
 from route.main_setting_skin_set import main_setting_skin_set
 from route.main_setting_top_menu import main_setting_top_menu
+from route.main_setting_email_test import main_setting_email_test
 
 from route.main_sys_restart import main_sys_restart
 from route.main_sys_shutdown import main_sys_shutdown
@@ -185,6 +186,7 @@ from route.go_api_func_sha224 import api_func_sha224
 from route.go_api_func_ip import api_func_ip
 from route.go_api_func_ip_menu import api_func_ip_menu
 from route.go_api_func_auth import api_func_auth
+from route.go_api_func_email import api_func_email
 
 from route.go_api_func_search import api_func_search
 

+ 16 - 0
route/go_api_func_email.py

@@ -0,0 +1,16 @@
+from .tool.func import *
+
+async def api_func_email():
+    if flask.request.method == 'POST':
+        func_name = sys._getframe().f_code.co_name
+        func_name += '_post'
+
+        other_set = {}
+        other_set["ip"] = ip_check()
+        other_set["who"] = flask.request.form.get('email', '')
+        other_set["title"] = flask.request.form.get('title', '')
+        other_set["data"] = flask.request.form.get('data', '')
+
+        return flask.Response(response = (await python_to_golang(func_name, other_set)), status = 200, mimetype = 'application/json')
+    else:
+        return flask.jsonify({}) 

+ 37 - 0
route/main_setting_email_test.py

@@ -0,0 +1,37 @@
+from .tool.func import *
+
+from .go_api_func_email import api_func_email
+
+async def main_setting_email_test():
+    with get_db_connect() as conn:
+        if acl_check('', 'owner_auth', '', '') == 1:
+            return re_error(conn, 0)
+        
+        if flask.request.method == 'POST':
+            render_data = json.loads((await api_func_email()).data)
+            if render_data["response"] == "ok":
+                data = get_lang(conn, "ok")
+            else:
+                data = get_lang(conn, "error")
+
+            return easy_minify(conn, flask.render_template(skin_check(conn),
+                imp = [get_lang(conn, "email_test"), wiki_set(conn), wiki_custom(conn), wiki_css([0, 0])],
+                data = data,
+                menu = [["setting/external", get_lang(conn, 'return')]]
+            ))
+        else:
+            return easy_minify(conn, flask.render_template(skin_check(conn),
+                imp = [get_lang(conn, "email_test"), wiki_set(conn), wiki_custom(conn), wiki_css([0, 0])],
+                data = '''
+                    <form method="post">
+                        <input name="title" placeholder="''' + get_lang(conn, "title") + '''">
+                        <hr class="main_hr">
+                        <input name="email" placeholder="''' + get_lang(conn, "email") + '''">
+                        <hr class="main_hr">
+                        <textarea  name="data" class="opennamu_textarea_500" placeholder="''' + get_lang(conn, "content") + '''"></textarea>
+                        <hr class="main_hr">
+                        <button type="submit">''' + get_lang(conn, "send") + '''</button>
+                    </form>
+                ''',
+                menu = [["setting/external", get_lang(conn, 'return')]]
+            ))

+ 1 - 1
route/main_setting_external.py

@@ -98,7 +98,7 @@ def main_setting_external():
                         <h3>''' + get_lang(conn, 'smtp_setting') + '''</h3>
                         <a href="https://support.google.com/mail/answer/7126229">(Google)</a>
                         <hr class="main_hr">
-                        <a href="/setting/email_send">(''' + get_lang(conn, 'test') + ''')</a>
+                        <a href="/setting/email_test">(''' + get_lang(conn, 'test') + ''')</a>
                         <hr class="main_hr">
 
                         <span>''' + get_lang(conn, 'smtp_server') + '''</span>