import time
import random
'''
定义一个函数,展示菜单栏
'''
def random_code():
number = random.randint(100000, 999999)
return number
定义一个函数发送邮箱
def send_email(receiver_email, info):
# zyxkyiufoghagije
import smtplib
from email.mime.text import MIMEText
from email.header import Header
msg_from = '[email protected]' # 发送方邮箱
passwd = 'zyxkyiufoghagije' # 填入发送方邮箱的授权码(填入自己的授权码,相当于邮箱密码)
msg_to = receiver_email # 收件人邮箱
# msg_to = ['','','']
subject = '数加系统' # 主题
content = info
# 生成一个MIMEText对象(还有一些其它参数)
msg = MIMEText(content)
# 放入邮件主题
msg['Subject'] = subject
# 也可以这样传参
# msg['Subject'] = Header(subject, 'utf-8')
# 放入发件人
msg['From'] = msg_from
# 放入收件人
# 通过ssl方式发送,服务器地址,端口
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 登录到邮箱
s.login(msg_from, passwd)
# 发送邮件:发送方,收件方,要发送的消息
s.sendmail(msg_from, msg_to, msg.as_string())
print('验证码发送成功!!')
def init():
print('欢迎进入数加登录系统'.center(50, '-'))
print('''1.注册\n2.登录\n3.查看用户信息\n
''')
写一个公共的获取所有用户的信息,返回一个用户字典
def get_all_users():
# 新建一个字典,存储用户信息
users_dict = {}
# 打开文件
with open('users.txt', mode='r', encoding='UTF-8') as f:
content = f.read() # 读取全文的内容
user_list = content.split('\n') # ['root,qwerdf', 'xiaohu,123456', '']
# 最后一个是空字符串
user_list.pop(-1) # ['root,qwerdf', 'xiaohu,123456']
# 遍历列表得到字典
for user in user_list:
# 'root,qwerdf'
users_dict[user.split(',')[0]] = user.split(',')[1]
return users_dict
def register():
print('-' * 50)
print('欢迎注册!!')
while True:
name = input('请输入您的用户名:')
# 验证用户是否重复
users_dict = get_all_users()
if name not in users_dict:
break
print('')
print('该用户名已经被使用!!')
print('')
password = input('请输入您的密码:')
# TODO: 自己加邮箱发送验证码的功能
user_email = input('请输入您的邮箱: ')
# 生成验证码
yzm = random_code()
# 调用发送验证码的功能,发送验证码
send_email(user_email, f'【数加科技】您的验证码是: {yzm}, 在60秒之内使用,请勿泄露给他人。')
yzm_code = input('请输入验证码: ')
if yzm_code != str(yzm):
print('注册失败!!')
return None
with open('users.txt', 'a', encoding='UTF-8') as f:
f.write(f'{name},{password}\n')
time.sleep(3)
print(f'{name}用户注册成功!!')
def login():
print('欢迎进入数加登录页面'.center(50, '-'))
username = input('请输入要登录的用户名: ')
# 打开文件,读取用户数据
users_dict = get_all_users()
if username not in users_dict:
print('该用户不存在,请先注册!!')
return None
password = input('请输入密码: ')
if password != users_dict.get(username):
print('登录失败!!')
return None
print('登录成功!!')
def show():
print('当前系统用户信息'.center(50, '-'))
users_dict = get_all_users()
for user in users_dict.items():
print(f'用户名:{user[0]}, 密码:{user[1]}')
if name == 'main':
# 列出菜单
init()
dict1 = {
'1': register,
'2': login,
'3': show
}
flag = True
while flag:
choice = input('请输入您的选择(1/2/3): ')
if choice not in dict1:
print('没有您所选的选项!重新输入')
continue
fun1 = dict1.get(choice)
fun1()
flag = False
标签:users,发送,msg,dict,user,print,邮件
From: https://www.cnblogs.com/pecular/p/17970570