Files
micro_servers/smtp/smtp.py
T
2026-07-25 21:42:05 +08:00

62 lines
1.5 KiB
Python

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)