From a3c361e591b1223f67191a9ea0e39c09c514d4a2 Mon Sep 17 00:00:00 2001 From: shufeng2012 <277665039@qq.com> Date: Sat, 25 Jul 2026 21:42:05 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A9=20=E5=86=99=E4=BA=86=E4=BE=9D?= =?UTF-8?q?=E6=89=98smtp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- smtp/_run.sh | 5 ++++ smtp/_set.sh | 7 +++++ smtp/requirements.txt | 6 +++++ smtp/smtp.py | 62 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100755 smtp/_run.sh create mode 100755 smtp/_set.sh create mode 100644 smtp/requirements.txt diff --git a/smtp/_run.sh b/smtp/_run.sh new file mode 100755 index 0000000..2d61923 --- /dev/null +++ b/smtp/_run.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cd "$(dirname "$0")" || exit +source ./.env/bin/activate +#exec ./smtp.bin +exec python3 smtp.py diff --git a/smtp/_set.sh b/smtp/_set.sh new file mode 100755 index 0000000..e50af4f --- /dev/null +++ b/smtp/_set.sh @@ -0,0 +1,7 @@ +#!/bin/bash +cd "$(dirname "$0")" || exit +python3 -m venv .env +#sudo chmod +x .env/bin/activate +source .env/bin/activate +pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple +#nuitka --standalone smtp.py diff --git a/smtp/requirements.txt b/smtp/requirements.txt new file mode 100644 index 0000000..c383cd6 --- /dev/null +++ b/smtp/requirements.txt @@ -0,0 +1,6 @@ +nuitka +flask +flask-cors +flask_sqlalchemy +#gunicorn +waitress \ No newline at end of file diff --git a/smtp/smtp.py b/smtp/smtp.py index e69de29..c32697b 100644 --- a/smtp/smtp.py +++ b/smtp/smtp.py @@ -0,0 +1,62 @@ +from flask import Flask,app +from urllib import request +from email.mime.text import MIMEText +from email.header import Header +import smtplib +import random +from waitress import serve + +verification_code = 0 + +@app.route('/send_email', methods=["POST"]) + +def send_email(): + data = request.get_json() + + reciver_email = data.get('email') + SMTP_SERVER = '' + SMTP_PORT = 587 + SENDER_EMAIL = '' + __PASS = '' + + verification_code = random.randint(1000,9999) + + subject = "DNFS 验证码" + content = f"DNFS: 您的验证码为{str(verification_code)}" + + email_message = MIMEText(content, 'plain', 'utf-8') + email_message['From'] = Header(SENDER_EMAIL, 'utf-8') + email_message['To'] = Header(reciver_email, 'utf-8') + email_message['Subject'] = Header(subject) + + try: + server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT) + server.starttls() + server.login(SENDER_EMAIL, __PASS) + server.sendmail(SENDER_EMAIL, [reciver_email], email_message.as_string()) + return 200 + + except Exception as err: + raise err + return 400 + + finally: + server.quit() + +@app.route('/get_verification_code', method=["POST"]) + +def get_verification_code(): + data=request.get_json() + + input_verification_code = data.get('verification_code') + + if verification_code == input_verification_code: + return 200 + else: + return 400 + +ADDR = '127.0.0.1' +PORT = 8007 +if __name__ == "__main__": + print(f'Listen at http://{ADDR}:{PORT}') + serve(app, host=ADDR, port=PORT) \ No newline at end of file