当我们在注册一个网页时,有的网页会让必须要短信验证、邮箱验证,才可以进行账号的注册。其实,我们在项目中会遇到很多问题,比如:当我们进行爬虫的时候,很容易由于网页的改版,造成我们事先写好的爬虫突然无效,此时就需要及时的通知到我们的后台管理人员,可以进行及时修改工作。所以使用短信或者邮件的发送是非常有必要的。

所以今天想来谈一下如何使用Python进行发送邮件的操作。

邮件验证

程序思路

程序运行的环境是 windows10 + Python 3.6,此次主要用到的库有 smtplib、MIMEText、Header。

前期准备

准备邮箱。这里发送邮箱采用的是腾讯QQ邮箱,使用之前需要先去腾讯QQ中设置。获得客户端的授权码。在这里,我们先设置一个授权码,(记得保存好,不要被盗用哦)在后面我们会用到。

腾讯邮箱获取授权码

qq1.jpg

qq2.jpg

qq3.jpg

因为我之前已经设置过了,所以显示的是已开启状态。

网易163邮箱设置

163_1_.jpg

163_2.jpg

注意:

我们开启 POP3/SMTP服务 时,我们需要短信验证验证才可以开通。

程序源码

具体参数说明,请看源码注释,

send_email_code.py

# -*- coding: utf-8 -*-

# @Time : 2019/7/25 15:00

# @Author : hang1720

# @Site :

# @File : send_email_code.py

# @Software: PyCharm

# 发送纯文本

import smtplib

# 发送标题

from email.header import Header

# 邮件正文

from email.mime.text import MIMEText

import random

code = random.sample(list(range(1, 101)), 6)

code = list(map(lambda x: str(x), code))

code = ' '.join(code)

# print(sim)

def sendMail(user, pwd, sender, receiver, content, title):

"""

说明:此函数实现发送邮件功能。

:param user: 用户名

:param pwd: 授权码

:param sender: 发送方

:param receiver: 接收方

:param content: 邮件的正文

:param title: 邮件的标题

:return:

"""

mail_host = "smtp.qq.com" # qq的SMTP服务器

# 第一部分:准备工作

# 1.将邮件的信息打包成一个对象

message = MIMEText(content, "plain", "utf-8") # 内容,格式,编码

# 2.设置邮件的发送者

message["From"] = sender

# 3.设置邮件的接收方

# message["To"] = receiver

# join():通过字符串调用,参数为一个列表

message["To"] = ",".join(receiver)

# 4.设置邮件的标题

message["Subject"] = title

# 第二部分:发送邮件

try:

# 1.启用服务器发送邮件

# 参数:服务器,端口号

smtpObj = smtplib.SMTP()

smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号

# 2.登录邮箱进行验证

# 参数:用户名,授权码

smtpObj.login(mail_user, mail_pwd)

# 3.发送邮件

# 参数:发送方,接收方,邮件信息

smtpObj.sendmail(mail_user, receiver, message.as_string())

print("邮件发送成功")

except:

print('邮件发送失败')

code_1 = input('请输入您收到的验证码:')

if code == code_1:

print('恭喜您输入的正确')

if __name__ == "__main__":

mail_user = "1xxxxxxx99@qq.com"

mail_pwd = "cblkxxxxxxxxjcgj"

mail_sender = "15xxxxxxx99@qq.com"

shoujian = input('请输入收件人:')

csr = input('请输入抄送人:')

receivers = csr.split(' ')

mail_receiver = receivers + [shoujian]

email_content = "人生苦短,我用Python ,您的验证码为:%s" % code

email_title = "AID人工智能"

sendMail(mail_user, mail_pwd, mail_sender,

mail_receiver, email_content, email_title)

这里要说一点的是在设置message['to']时要注意的是,如果设置其他名字时,会被某些邮箱后台识别,提示发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件。

以上就是如何使用Python发送邮件进行信息提示的,除此之外,也可以用于用户邮箱验证等操作。

python自动接收邮件验证码_「 python 」 python 实现发送邮件验证码相关推荐

  1. python删除空白没有显示_「whitespace」python学习笔记:whitespace(空白符)及其判断、删除方法 - seo实验室...

    whitespace 一.string模块里的常量whitespace(string.whitespac)包含6个字符: ASCII码 字符表示 显示 描述 9 \t 无 HT,horizontal ...

  2. python读文件去除空行_「34」Python文件操作经典案例:CSV文件的读与写

    [1]认识CSV文件 CSV是Comma Separated Values的缩写,它是逗号分隔符文本格式,常用于数据交换.Excel文件和数据库数据的导入和导出. 鉴于CSV的应用场景,编程人员与它打 ...

  3. python 中主线程结束 子线程还在运行么_「干货」python线程笔记

    引言&动机 考虑一下这个场景,我们有10000条数据需要处理,处理每条数据需要花费1秒,但读取数据只需要0.1秒,每条数据互不干扰.该如何执行才能花费时间最短呢? 在多线程(MT)编程出现之前 ...

  4. python自动接收邮件_Python自动发送和收取邮件的方法

    作为课代表,经常要做的两件事是:帮忙发作业和帮忙收作业,而且很多时候是通过邮件来完成的,如果手动一封一封的收取和发送就很浪费时间--人生苦短,我用Python. 直接上代码,不想了解细节原理直接拉到最 ...

  5. python 回车字符_「答案」python每日一题20201107

    用python输出 如下9*9 乘法口诀表. #####方法一#####for i in range(1,10): for j in range(1,i+1): print("%2d*%2d ...

  6. python输出1000以内回文数_「答案」python每日一题20201108

    质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数.用python输出1000以内的所有质数. #####方法一#####def isPrime(n): if n <=1: r ...

  7. python自动发微信天气预报_【教程】Python微信定时自动给女朋友发送天气预报

    原标题:[教程]Python微信定时自动给女朋友发送天气预报 先上效果图 主要思路 1.从wxpy获取好友列表 2.创建定时器 3.定时器触发函数 4.函数执行,遍历好友列表 5.好友对象执行带参函数 ...

  8. oracle split函数用法_「干货」Python字符串中的split方法

    前面的文章我们有简单的介绍过什么是字符串.Python字符串的输入方式.Python字符串的拼接方法等今天我们主要分享一下Python字符串中split方法! Python字符串中的方法有很多种,其中 ...

  9. python语言中的冒号_「冒号」编程语言中的冒号(:) - seo实验室

    冒号 1.lisp语言中用括弧()分割语句和定义函数参数,用空格分割原子,用分号表示注释,逗号,数组中用,用冒号(:)来定义函数命令,即可以在cad命令行里输入. 2.Python中,用()定义函数参 ...

最新文章

  1. mysql不同实例数据同步_两台Mysql数据库数据同步实现实例
  2. Spring Batch_官网DEMO实现
  3. POJ2155二维线段树
  4. 十个 Laravel 5 程序优化技巧
  5. Memcached的使用
  6. php里怎么添加计时器,如何使用php显示计时器?
  7. 【NOIP2013模拟】Vani和Cl2捉迷藏 题解代码
  8. 反编译中内部类调用外部类成员问题
  9. ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)...
  10. uva 524(Prime Ring Problem UVA - 524 )
  11. 利用c语言面向对象编程,用C语言程序实现面向对象编程
  12. 最好的MATLAB入门教程
  13. NXP iMX8系列处理器核心性能对比测试
  14. IT加速营-关于java开发,测试及职业规划的公众号
  15. freeradius 3.0 mysql_求助FreeRadius+MySql 配置
  16. Python操作wifi进行数据传输
  17. 小程序里说的冷启动和热启动是什么
  18. 【C语言】判断一个浮点数是否等于零
  19. 在cadence中使用VerilogA
  20. 2006年IT公司(红/黑)榜前100名

热门文章

  1. iOS定位服务 CoreLocation
  2. Type assertions and type switches in GO
  3. 英语六级听力学习——不是听力词汇及其本人易错发音
  4. ✌️微信、知乎、美团、视频类等热门App图文排版技巧分析
  5. 手动泵DHP2-100、DHP-100
  6. 网页版Android手机时钟网页特效
  7. 云南省计算机一级b类理论知识,计算机一级B类云南省计算机一级考精彩试题库资料...
  8. 用令牌桶算法完成API接口限流
  9. 微信小程序可以用到的各大平台的免费接口
  10. CentOS7 - 从零开始学习 推荐新手入门