我正在尝试为作业发送两步验证码,并且一切正常,但是当我收到电子邮件时,没有号码。 For Loop创建随机的6位代码。它说:请输入此两步验证码来确认您的登录。没有”
我一直在寻找解决方案和google等的堆栈流
def TwoStep():
for x in range(1):
RandomNumber = print(random.randint(100000,1000000))
time.sleep(5)
email_send = 'recieving email'
email_user = 'myemail'
email_password = 'password'
subject = '2-Step Verification'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
msg['Subject'] = subject
body = ('Please confirm your login by entering this 2-step verification code. ' + str(RandomNumber))
msg.attach(MIMEText(body,'plain'))
text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(email_user,email_password)
server.sendmail(email_user,email_send,text)
server.quit()
TwoStep()
能够通过电子邮件发送6位代码。
答案 0 :(得分:2)
一些要评论的东西:
1)print(random.randint(100000,1000000))
在控制台中显示数字,但不返回任何内容,这就是为什么要获得None
值的原因。
2)请勿使用大写字母的变量,按照惯例,这些名称是为命名类保留的,将其视为变量会令人困惑。请注意,即使SO高亮也将其标记为另一种颜色。使用一些驼峰式或蛇形的命名方式,例如randomNumber
或random_number
(在Python中更常见)。
3)for循环是否甚至必要?我认为您只需要生成一个随机数,就可以删除它周围的循环,只需分配一次即可。
答案 1 :(得分:0)
您的代码没有返回随机数而是打印了一个随机数,为什么还要添加循环?
for x in range(1):
RandomNumber = print(random.randint(100000,1000000))