python邮箱发送验证码
时间: 2023-11-24 07:53:11 浏览: 112
以下是Python实现发送邮箱验证码的代码示例:
```python
import random
import string
import zmail
def generate_code(length=6):
"""生成指定长度的随机验证码"""
code = ''.join(random.choices(string.digits, k=length))
return code
def send_email_code(from_mail, passwd, to_mail):
"""发送邮箱验证码"""
code = generate_code()
subject = '邮箱验证码'
text = f'您的验证码为:{code}'
server = zmail.server(from_mail, passwd)
server.send_mail(to_mail, {'subject': subject, 'content_text': text})
return code
```
使用时,只需要调用`send_email_code`函数即可发送验证码到指定邮箱,并返回生成的验证码。需要注意的是,发送邮件前需要先开启邮箱的IMAP/SMTP服务,并获取授权码填写到代码中。
相关问题
Python发送验证码代码示例
Python发送验证码的代码示例如下:import smtplib # 使用SMTP发送邮件
server = smtplib.SMTP('smtp.example.com', 25)
server.starttls()
server.login("username", "password") # 发送验证码到指定邮箱
msg = "您的验证码是:123456"
server.sendmail("sender@example.com", "receiver@example.com", msg)
server.quit()
使用flask完成邮箱发送验证码
好的,以下是基于 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 格式响应。
阅读全文