学会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操作MySQL数据库具体方法
Oct 28 Python
Python和php通信乱码问题解决方法
Apr 15 Python
Python中文竖排显示的方法
Jul 28 Python
django 发送手机验证码的示例代码
Apr 25 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
python如何实现DES加密
Sep 21 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
Python之qq自动发消息的示例代码
Feb 18 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实现图片简单上传
2006/10/09 PHP
PHP教程 基本语法
2009/10/23 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
ext form 表单提交数据的方法小结
2008/08/08 Javascript
图像替换新技术 状态域方法
2010/01/28 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
Python操作csv文件实例详解
2017/07/31 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
Python循环实现n的全排列功能
2019/09/16 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
关于numpy数组轴的使用详解
2019/12/05 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
C语言面试题
2015/10/30 面试题
医学生个人求职信范文
2013/09/24 职场文书
美发活动策划书
2014/01/14 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
农业项目合作意向书
2015/05/08 职场文书
关于的python五子棋的算法
2022/05/02 Python