学会python自动收发邮件 代替你问候女友


Posted in Python onMay 20, 2020

每天工作忙,学会python自动收发邮件,代替你问候女友

1、相关库介绍

1)yagmail

  • Yet Another GMAIL/SMTP client;
  • 非常方便的SMTP包,超简单的Python发邮件模块;
  • 需要单独安装,不包含在Python标准模块里;
  • yagmail官网链接

2)keyring

  • 从Python访问系统密钥环服务(即密码不用直接写在代码里);
  • 方便、安全地储存你的密码;
  • 需要单独安装,不包含在Python标准模块里;
  • keyring官网链接

3)schedule

  • 超容易理解的定时任务执行器;
  • 需要单独安装,不包含在Python标准模块里;
  • schedule官网链接

4)imbox

  • 简易的Python IMAP包;
  • 进行IMAP相关的操作;
  • 需要单独安装,不包含在Python标准模块里;
  • imbox官网链接

5)上述库安装

pip install yagmail keyring schedule imbox

2、利用python发送邮件

1)邮件相关基础知识

  • POP3:Post Office Protocol3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。
  • SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议。
  • IMAP:Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。

注意:写代码发邮件时一定要注意不能频繁发送!容易被当做垃圾邮件被屏蔽!!

2)python发送邮件流程(以“QQ邮箱”为例,进行说明)

① 注册一个QQ邮箱,开通POP3/SMTP/IMAP

具体可参考:python实现QQ邮箱/163邮箱的邮件发送

点击设置--》账户--》开启如下服务

学会python自动收发邮件 代替你问候女友

注意:开启过程中,需要发送短信验证,此时会出现一个第三方密码,这个第三方密码在使用第三方软件登陆的时候,用该密码代替你的扣扣登陆密码。

学会python自动收发邮件 代替你问候女友

② 找到SMTP和IMAP服务器的地址

学会python自动收发邮件 代替你问候女友

③ 发送邮件之前,先使用yagmail存储你的邮件地址和密码

学会python自动收发邮件 代替你问候女友

注意:这两行代码,是用于存储你的邮件地址和密码,当你执行这行代码后。你后面发送邮件的时候,就只需要显示给出你账号即可,而不用再把密码显示出来。

 ④ 发送第一封测试邮件

import yagmail
# 这里的user填写的是你的扣扣邮箱账号,可以看出这里并没有写我们的“密码”
yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com")

contents = ["这是第一段正文内容","这是第二段正文内容"]
# 这里填写的是你要发送的人的扣扣邮箱
yag.send("××××××××××@qq.com","这是一封邮件",contents)
"""
特别备注一下:这里可以看到,我们发送邮件的时候,此时就没有显示给出密码了。
这样做相对来说较为安全,这就是yagmail库的好处。
"""

结果如下:

学会python自动收发邮件 代替你问候女友

⑤ 发送带HTML样式的邮件

import yagmail

yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com")

contents = ['这是第一段正文内容',
 '这是第二段正文内容',
 '百度网站']

yag.send("××××××××××@qq.com","这是一封邮件",contents)

结果如下:

学会python自动收发邮件 代替你问候女友

⑥ 发送带附件的邮件

import yagmail

yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com")

contents = ['这是第一段正文内容',
 '这是第二段正文内容',
 '百度网站',
 'G:\\6Tipdm\\7python办公自动化\\我创建的压缩包.zip']

yag.send("××××××××××@qq.com","这是一封邮件",contents)

结果如下:

学会python自动收发邮件 代替你问候女友

⑦ 发送带嵌入图片的邮件

import yagmail

yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com")

contents = ['亲爱的××老婆',
 '我爱你',
 yagmail.inline('G:\\6Tipdm\\7python办公自动化\\老婆.png')]

yag.send("××××××××××@qq.com","这是一封邮件",contents)

⑧ 群发邮件

import yagmail

yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com")

contents = ['这是第一段正文内容',
 '这是第二段正文内容',
 '百度网站',
 'G:\\6Tipdm\\7python办公自动化\\我创建的压缩包.zip']

# 定义一个收件人列表
shoujian_ren = ["×1×@qq.com","×2×@qq.com","×3×@qq.com"]
yag.send(shoujian_ren,"这是一封邮件",contents)

⑨ 定时发送邮件

利用这个功能,你可以定时给你女朋友发送邮件,表达你的关心,以免自给由于工作忙,而忽略了自己的女朋友。

import time
import schedule
import yagmail
import datetime

def morning():
 content = ["亲爱的,记得吃早饭哦!"]
 yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com")
 yag.send("1127421544@qq.com","这是一封邮件",content)
def afternoon():
 content = ["亲爱的,记得吃中饭哦!"]
 yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com")
 yag.send("1127421544@qq.com","这是一封邮件",content)
def evering():
 content = ["亲爱的,记得吃晚饭哦!"]
 yag = yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com")
 yag.send("1127421544@qq.com","这是一封邮件",content)

schedule.every().day.at("07:30").do(morning)
schedule.every().day.at("11:30").do(afternoon)
schedule.every().day.at("17:30").do(evering)

while True:
 # 当代码完成了这一天的任务以后,自动结束任务
 if datetime.datetime.now().strftime("%H:%M") == "17:31":
 break
 schedule.run_pending()
 time.sleep(1)
"""
# 每十分钟,执行一次任务
schedule.every(10).minutes.do(job)
# 每小时,执行一次任务
schedule.every().hour.do(job)
# 每天上午十点半,执行一次任务
schedule.every().day.at("10:30").do(job)
# 每5-10钟,执行一次任务
schedule.every(5).to(10).minutes.do(job)
# 每周一,执行一次任务
schedule.every().monday.do(job)
# 每周三下午一点十五分,执行一次任务
schedule.every().wednesday.at("13:15").do(job)
# 每分钟的第十七秒,执行一次任务
schedule.every().minute.at(":17").do(job)
"""

3、利用python读取邮件

学会python自动收发邮件 代替你问候女友

代码如下:

from imbox import Imbox
import keyring
# "1127421544@qq.com"是你的邮箱账号
pwd = keyring.get_password("yagmail", "1127421544@qq.com")
# "imap.qq.com"是你的IMAP邮箱服务器地址
with Imbox("imap.qq.com","1127421544@qq.com",pwd,ssl=True) as imbox:
 all_inbox_messages = imbox.messages()
 for uid, message in all_inbox_messages:
 print(message.subject)
 print(message.body["plain"])

如何读取未读邮件,只需要添加一个参数:

学会python自动收发邮件 代替你问候女友

如果只想看红旗标记的邮件,应该怎么办:

学会python自动收发邮件 代替你问候女友

如果只想看来自某个人的邮件,应该怎么做:

学会python自动收发邮件 代替你问候女友

如何按照日期筛选邮件:

学会python自动收发邮件 代替你问候女友

设置标记已读和删除邮件:

学会python自动收发邮件 代替你问候女友

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
为什么入门大数据选择Python而不是Java?
Mar 07 Python
Python打印输出数组中全部元素
Mar 13 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
Numpy一维线性插值函数的用法
Apr 22 Python
python处理写入数据代码讲解
Oct 22 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
asyncio异步编程之Task对象详解
Mar 13 Python
Django中ORM找出内容不为空的数据实例
May 20 #Python
django为Form生成的label标签添加class方式
May 20 #Python
django orm模块中的 is_delete用法
May 20 #Python
Python3批量创建Crowd用户并分配组
May 20 #Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 #Python
django中related_name的用法说明
May 20 #Python
在django中form的label和verbose name的区别说明
May 20 #Python
You might like
php自动适应范围的分页代码
2008/08/05 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
PHP数组相关函数汇总
2015/03/24 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
Python中你应该知道的一些内置函数
2017/03/31 Python
Python统计单词出现的次数
2018/04/04 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
解决python3运行selenium下HTMLTestRunner报错的问题
2018/12/27 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
python脚本开机自启的实现方法
2019/06/28 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
python如何调用php文件中的函数详解
2020/12/29 Python
自我评价正确写法范文
2013/12/10 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
元旦趣味活动方案
2014/08/22 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
行政复议决定书
2015/06/24 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书