前言

​未经授权,禁止转载。转载联系邮箱i@r3r.top

​关于 Python 这个栏目,咕了几个月了,今天讲讲如何发送验证码并验证。

​因为部分原因,写这篇文章的时候心情是不太好的,播放首歌吧。

代码

导入

导入yagmail,random和time库

import yagmail,random,time #导入 yagmail , random 和 time 库

询问用户信息

询问用户昵称与邮箱 , 并设置验证码

ss = input("您的昵称:")#询问用户昵称

yonghu = input("您的邮箱:")#询问用户邮箱

key = random.randint(0,999999)#设置验证码

链接邮箱服务器

链接邮箱SMTP服务器发信

yag = yagmail.SMTP( user="**邮箱账号**", password="**邮箱密码或授权码**", host='**邮箱SMTP服务器**')#链接邮箱服务器发信

后续可能会出教程获取授权码,QQ邮箱的服务器是:smtp.qq.com;腾讯企业邮箱的服务器是:smtp.exmail.qq.com;

设置邮件主题

设置邮件发送时的主题

subject = [" JunJun.Tec 验证码"]

设置邮件内容

设置邮件发送时的内容

以下提供邮件HTML代码参考 ,也可不带格式。

{},您好! 
您的 JunJun.Tec 验证码/临时登录密码 为 
{}
如非您本人操作无需理会。 
感谢支持。

注明,代码内的 {} 无需修改,稍后需要嵌入验证码。如果自行编写,需要 {} 从而加入验证码。

以下提供Python代码

contents = ['''

{},您好! 
您的 JunJun.Tec 验证码/临时登录密码 为 
{}
如非您本人操作无需理会。 
感谢支持。

'''.format(ss,key)]#使用 ''' 嵌入HTML代码,使用 format 嵌入称呼(ss)与验证码(key)

使用 ''' 嵌入HTML代码,使用 format 嵌入称呼(ss)与验证码(key)

发送邮件

使用Yagmail向用户发信

yag.send(yonghu,subject, contents)#发送邮件

print("验证码邮件发送成功")

询问用户验证码

使用input向用户询问验证码

keypass2 = input("输入您的验证码:")#询问用户验证码

如果你直接拿用户提交的变量(keypass2)与验证码变量(key)进行比较,你就会发现bug,原因是两者格式不同,所以我们要对用户提交的变量(keypass2)进行处理

处理用户的验证码

对验证码进行处理

keypass = int(keypass2)#对 keypass2 进行 int 处理

比对验证码

if keypass == key:

print('correct!')# 正确

else:

print("Error!")# 错误

仍需改进的地方

还有许多内容没做,其中包括输入错误验证码后等待再发送,防止多次请求等等。

完整代码

import yagmail,random,time #导入 yagmail , random 和 time 库

ss = input("您的昵称:")#询问用户昵称

yonghu = input("您的邮箱:")#询问用户邮箱

key = random.randint(0,999999)#设置验证码

yag = yagmail.SMTP( user="**邮箱账号**", password="**邮箱密码或授权码**", host='**邮箱SMTP服务器**')#链接邮箱服务器发信

subject = [" JunJun.Tec 验证码"]

contents = ['''

{},您好! 
您的 JunJun.Tec 验证码/临时登录密码 为 
{}
如非您本人操作无需理会。 
感谢支持。

'''.format(ss,key)]#使用 ''' 嵌入HTML代码,使用 format 嵌入称呼(ss)与验证码(key)

yag.send(yonghu,subject, contents)#发送邮件

print("验证码邮件发送成功")

keypass2 = input("输入您的验证码:")#询问用户验证码

keypass = int(keypass2)#对 keypass2 进行 int 处理

if keypass == key:

print('correct!')# 正确

else:

print("Error!")# 错误

演示

写在最后

python 邮箱验证_Python-发送邮件验证码相关推荐

  1. 邮箱注册(发送邮件验证码;QQ邮箱)

    邮箱注册(发送邮件验证码:QQ邮箱) 先去QQ邮箱-->点击设置有POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务.开通会有授权码 复制粘贴代码就可以使用.根据指 ...

  2. python程序下载腾讯企业邮箱附件_python 发送邮件 QQ+腾讯企业邮箱

    一.使用QQ邮箱或者腾讯企业邮箱 python 发送邮件属于网络编程方向的,在工作中,我需要经常用邮件来检测我的程序运行状况.使用起来十分方便,这里我就用腾讯企业邮箱作为我的收发邮箱来使用. 使用py ...

  3. python 邮箱验证_在Django中进行用户注册和邮箱验证的方法

    本文主要介绍我在利用Django写文章时,采用的注册方法.首先说一下整体逻辑思路: •处理用户注册数据, •产生token,生成验证URL, •发送验证邮件, •用户登录网址,进行验证, •验证处理. ...

  4. python 登录验证_Python实现简单登录验证

    这篇文章主要为大家详细介绍了Python实现简单登录验证的相关资料,需要的朋友可以参考下 本文实例为大家分享了简单的Python登录验证,供大家参考,具体内容如下 编写登录接口 要求:1.输入用户名密 ...

  5. struts2的登录注册 验证码 邮箱验证_Python+tkinter模拟京东登录时拖动图片式验证码...

    好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...

  6. python训练好的图片验证_Python图片验证码降噪处理实例

    图片验证码算是网络数据采集上的一道拦路虎,虽然有诸多公开的ORC接口.云打码平台,一旦大规模应用起来,还是内部写程序进行识别处理比较好. 而自己写代码进行识别的话,又有很多种方案,比如最近火热的神经网 ...

  7. 用户登录邮箱验证和发送邮件缓存应用

    在用户大量注册的时候,我门需要使用邮箱去让用户激活在本站的邮箱信息 如果没有激活 有一些功能就不能用,并且也 不能去验证本邮箱的安全性,所以我们数据库中 用户表中记录着用户的 激活状态 actives ...

  8. python发送文件_Python发送邮件(最全)

    简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件. Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听 ...

  9. python邮箱爆破_python制作企业邮箱的爆破脚本

    按照师傅给的任务,写了一个企业邮箱的爆破脚本,后续还有FTP,SSH等一些爆破的脚本. 我先说下整体思路: 总体就是利用python的poplib模块来从pop3服务器上交互,根据获取的相关信息,产生 ...

最新文章

  1. 蓝桥杯 校门外面的树 (线段树,区间处理)
  2. 【2015-10-19】内存管理---深浅拷贝,autorelease,ARC(自动引用计数)
  3. mysql的length函数和char_length中文字符长度计算函数
  4. 漫谈SAP产品里页面上的Checkbox设计与实现系列之一
  5. 趣拼图最后完成及总结
  6. 如何正确获取安卓内置SD卡的路径
  7. 医学相关excel表格计算机作业,求计算机作业电子表格演示文稿。
  8. python字符串索引必须是整数_python – TypeError:字符串索引必须是整数...
  9. URL 编码是什么?
  10. 如何在Firefox中播放MID文件?
  11. 【USB】USB的VID和PID
  12. recycle view设置item下划线
  13. leetcode【困难】460、LFU 缓存
  14. POJ 3713 枚举 + Tarjan 割点
  15. 【分享】免费的国际一级域名和100M支持asp、cgi空间
  16. gradle自定义任务
  17. Liang-GaRy-linux的网络连接
  18. SOC环境中挂载C和S家VIP时,解决UVM uvm_pkg冲突问题
  19. Facial Expression Recognition Challenge 2013数据集下载
  20. 水滴石穿、坚持不懈,必能有所精进

热门文章

  1. Python练习:整数加减和
  2. 从第一范式(2nf)到第二范式(3nf)_啥是数据库范式
  3. linux安装了xml怎么编译,linux下libxml库的安装及编译
  4. php4.3.x 5.2.x,XDEBUG for PHP 5.3.0
  5. mysql where 大小写_java – 使用select where where Mysql在Mysql中区分大小写
  6. eclipse+java+selenium+testNG搭建自动化测试框架
  7. .net网页input 赋值 提交时空白_《快速掌握PyQt5》第三十章 网页交互QWebEngineView...
  8. 量化感知训练_如何评估训练质量?常被训练者忽视的内部负荷
  9. 如何为prel语言加载模块_WebAssembly 系列(第四部分)- 创建和使用WebAssembly模块...
  10. html中tab页怎么写,html如何实现tab页面切换