学会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 相关文章推荐
Python多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Python的Django REST框架中的序列化及请求和返回
Apr 11 Python
Python while 循环使用的简单实例
Jun 08 Python
Python按行读取文件的简单实现方法
Jun 22 Python
详解python之简单主机批量管理工具
Jan 27 Python
python对excel文档去重及求和的实例
Apr 18 Python
python爱心表白 每天都是浪漫七夕!
Aug 18 Python
python 标准差计算的实现(std)
Jul 29 Python
python实现智能语音天气预报
Dec 02 Python
区分python中的进程与线程
Aug 13 Python
全面介绍python中很常用的单元测试框架unitest
Dec 14 Python
python opencv通过4坐标剪裁图片
Jun 05 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
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
PHP之预定义接口详解
2015/07/29 PHP
PHP处理会话函数大总结
2015/08/05 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
详解Python中的日志模块logging
2015/06/19 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
年度考核自我鉴定
2014/02/02 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
学生会工作感言
2015/08/07 职场文书
老人院义工活动感想
2015/08/07 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
高三语文教学反思
2016/02/16 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS