使用flask完成邮箱发送验证码
时间: 2023-10-16 07:06:36 浏览: 76
邮箱发送验证码
好的,以下是基于 Flask 的邮箱验证码发送代码示例:
```python
from flask import Flask, request, jsonify
import random
import smtplib
from email.mime.text import MIMEText
app = Flask(__name__)
@app.route('/send_code', methods=['POST'])
def send_code():
# 获取请求中的邮箱地址
email = request.form.get('email')
# 生成随机验证码
code = str(random.randint(100000, 999999))
# 发送邮件
try:
# 邮件内容
message = MIMEText(f'Your verification code is {code}', 'plain', 'utf-8')
message['From'] = 'sender@example.com'
message['To'] = email
message['Subject'] = 'Verification Code'
# 发送邮件
smtpObj = smtplib.SMTP('smtp.example.com', 587)
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.login('sender@example.com', 'password')
smtpObj.sendmail('sender@example.com', [email], message.as_string())
smtpObj.quit()
# 邮件发送成功,返回验证码
return jsonify({'code': code})
except:
# 邮件发送失败,返回错误信息
return jsonify({'error': 'Failed to send email'})
if __name__ == '__main__':
app.run()
```
这个示例代码中,我们通过 `POST` 请求向路由 `/send_code` 发送了一个包含邮箱地址的表单。然后,我们在服务器端生成了一个 6 位的随机验证码,将其放入邮件中,并使用 SMTP 协议发送邮件。如果邮件发送成功,我们将返回一个包含验证码的 JSON 格式响应;否则,我们将返回一个包含错误信息的 JSON 格式响应。
阅读全文