背景

前段时间写了个自动打卡的脚本,但是脚本不够完善,我需要知道,打卡到底成没成功,因此,我想到了用Python执行完代码之后,再执行一段发送邮件的代码。需求开始明确了,就开始分析和写代码实现吧。

分析

SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

代码实现

import smtplib
from email.mime.text import MIMEText
# 引入smtplib和MIMEText
from time import sleep def sentemail():
host = 'smtp.163.com'
# 设置发件服务器地址
port = 465
# 设置发件服务器端口号。注意,这里有SSL和非SSL两种形式,现在一般是SSL方式
sender = 'a419914150@163.com'
# 设置发件邮箱,一定要自己注册的邮箱
pwd = 'SGJEKFBFK322'
# 设置发件邮箱的授权码密码,根据163邮箱提示,登录第三方邮件客户端需要授权码
receiver = '419914150@qq.com'
# 设置邮件接收人,可以是QQ邮箱
body = '<h1>你已成功打卡</h1><p>zhongfs</p>'
# 设置邮件正文,这里是支持HTML的
msg = MIMEText(body, 'html')
# 设置正文为符合邮件格式的HTML内容
msg['subject'] = '打卡通知'
# 设置邮件标题
msg['from'] = sender
# 设置发送人
msg['to'] = receiver
# 设置接收人
try:
s = smtplib.SMTP_SSL(host, port)
# 注意!如果是使用SSL端口,这里就要改为SMTP_SSL
s.login(sender, pwd)
# 登陆邮箱
s.sendmail(sender, receiver, msg.as_string())
# 发送邮件!
print ('Done.sent email success')
except smtplib.SMTPException:
print ('Error.sent email fail') if __name__ == '__main__':
sentemail()

执行情况

程序运行截图:

收到邮件截图:

总结

本文简单介绍了如何利用python通过163邮箱发送邮件,并附上了代码。由于比较简单,不再过多阐述。已上传github代码,链接如下:

https://github.com/rootzhongfengshan/python_practical/blob/master/SentMail/SentMail.py

利用Python+163邮箱授权码发送邮件的更多相关文章

  1. 利用Python+163邮箱授权码发送带附件的邮件

    背景 前段时间写了个自动爬虫的脚本,定时在阿里云服务器上执行,会从某个网站上爬取链接保存到txt文本中,但是脚本不够完善,我需要爬虫完毕之后通过邮件把附件给我发送过来,之前写过一个<利用Pyth ...

  2. C# QQ邮箱授权码发送邮件

    using System.Net;using System.Web.Mail; public class SendMail { /// <summary> /// 发送Email /// ...

  3. Python Django中QQ邮箱授权码问题

    Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...

  4. 利用Python的smtplib和email发送邮件

    原理 网上已经有了很多的教程讲解相关的发送邮件的原理,在这里还是推荐一下廖雪峰老师的Python教程,讲解通俗易懂.简要来说,SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本 ...

  5. 利用Python制作二维码

    利用简单的Python代码制作二维码 一.制作工具 安装Python环境 + PyCharm编译器. 二.电脑系统 本人win10 + Python3.7.0 + PyCharm. 三.写代码前先下载 ...

  6. [置顶] 利用Python 提醒实验室同学值日(自动发送邮件)

    前言: 在实验室里一直存在着一个问题,就是老是有人忘记提醒下一个人值日,然后值日就被迫中断了.毕竟良好的        卫生环境需要大家一起来维护的!没办法只能想出一些小对策了. 解决思路: 首先,我 ...

  7. 【PHPmailer】发送邮件(以163邮箱为例)

    1.参考TP社区:http://www.thinkphp.cn/code/989.html 2.phpmailer.rar下载地址:http://www.thinkphp.cn/code/downlo ...

  8. PHP发送邮件功能实现(使用163邮箱)

    第一步 我用的是163邮箱发送邮件,做一个尝试,在尝试之前,需要要开启163邮箱的授权码如图所示,请记住您的授权码,将在之后的步骤中用到 第二步 需要下载一个类PHPMailer,我有这个资源已经上传 ...

  9. 普通邮箱设置客户端授权码并开启stmp服务以及关于QQ邮箱“命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !”问题全指导

    Zoomla!逐浪CMS带有强大的邮局功能,可以用于发送邮件与进行事务管理. 其中邮局配置大家不太熟悉这里提供一系列教程. 1.首先在QQ邮箱当中开启"POP3/SMTP服务" 2 ...

随机推荐

  1. 3D Math Keynote 4

    [3D Math Keynote 4] 1.三角带. 合并三角带能够提升渲染效率. 三角扇. 2.边缩坍,将边缩减为顶点 . 网格消减,使用边缩坍,可以实现渐进式网络. 3.下图左边是面拆分.右边是焊 ...

  2. web应用程序+HTTP协议

    标签(空格分隔): Django web应用程序案例: 如果我们想通过自己电脑访问京东,就是一个网络编程(因为京东的服务部署在京东,通过自己的电脑浏览器传输到京东服务就是网络编程):只要涉及到网络编程 ...

  3. jackson 字符串转对象

    ObjectMapper mapper = new ObjectMapper(); Map<String, Object> map = mapper.readValue(str, Map. ...

  4. Cisco交换机设置备份

    conf tusername xa privilege 3 secret xxx aaa new-modelaaa authentication login default local enablea ...

  5. 使用iconfont图标

    iconfont.cn基本使用 登录iconfont.cn网站,直接使用github账号即可登录 输入关键字搜索需要的图标,然后在需要的图标上点击'添加入库' 点击网站右上角的购物车图标,查看当前已入 ...

  6. 28. pt-table-sync

    前提:得有checksum表 pt-table-sync --replicate=pt.checksum \h=192.168.100.101,P=3306,u=admin,p=admin \h=19 ...

  7. ubuntu 18.04输入法问题

    ubuntu 18.04输入法IBus出现问题.打字的弹窗只选择数字1对应的汉字,选择2,3,4,5等数字对应的汉字,就会出现问题. 例如下图只能选择1 不能选择2 3 4 5. 删除了~/.cach ...

  8. Servlet获取 URL 地址

    使用 ServletRequest 的如下方法 getContextPath 取得项目名 getServletPath 取得Servlet名 getPathInfo 取得Servlet后的URL名,不 ...

  9. Maven 生成可执行的jar包

    maven 默认打包生成的 jar 包是不能够直接运行的,因为带有 main 方法的类信息不会添加到 manifest 中,即打开 jar 文件中的 META-INF/MANIFEST.MF 文件,将 ...

  10. spring boot 源码分析

    说明:spring boot版本 2.0.6.RELEASE 思绪 首先,大家认识spring boot是从@SpringBootApplication注解和org.springframework.b ...