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

简介: 每天工作忙,学会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

具体步骤参考如下链接:http://xinzhi.wenda.so.com/a/1523533253610174

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

image.png

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

image.png


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

image.png


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

image.png

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



④ 发送第一封测试邮件

i

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


结果如下:

image.png


⑤ 发送带HTML样式的邮件

import yagmail
yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com")
contents = ['这是第一段正文内容',
            '这是第二段正文内容',
            '<a href="https://www.baidu.com">百度网站</a>']
yag.send("××××××××××@qq.com","这是一封邮件",contents)


结果如下:

image.png


⑥ 发送带附件的邮件

import yagmail
yag = yagmail.SMTP(user="××××××××××@qq.com",host="smtp.qq.com")
contents = ['这是第一段正文内容',
            '这是第二段正文内容',
            '<a href="https://www.baidu.com">百度网站</a>',
            'G:\\6Tipdm\\7python办公自动化\\我创建的压缩包.zip']
yag.send("××××××××××@qq.com","这是一封邮件",contents)


结果如下:

image.png


⑦ 发送带嵌入图片的邮件

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 = ['这是第一段正文内容',
            '这是第二段正文内容',
            '<a href="https://www.baidu.com">百度网站</a>',
            '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读取邮件


代码如下:


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"])


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

image.png

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

image.png

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

image.png

如何按照日期筛选邮件:

image.png

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

image.png

相关文章
|
8月前
|
数据安全/隐私保护 Python
Python实现邮件发送(含详细设置方法),并总结自己遇到的错误
Python实现邮件发送(含详细设置方法),并总结自己遇到的错误
|
8月前
|
存储 搜索推荐 数据安全/隐私保护
python实战讲解之使用Python批量发送个性化邮件
python实战讲解之使用Python批量发送个性化邮件
|
5月前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
59 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
30天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
35 4
|
2月前
|
开发者 Python
使用Python实现自动化邮件通知:当长时程序运行结束时
本文介绍了如何使用Python实现自动化邮件通知功能,当长时间运行的程序完成后自动发送邮件通知。主要内容包括:项目背景、设置SMTP服务、编写邮件发送函数、连接SMTP服务器、发送邮件及异常处理等步骤。通过这些步骤,可以有效提高工作效率,避免长时间等待程序结果。
71 9
|
6月前
|
监控 网络协议 网络安全
SMTP操作使用详解并通过python进行smtp邮件发送示例
SMTP操作使用详解并通过python进行smtp邮件发送示例
174 3
|
7月前
|
Windows Python
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
|
6月前
|
机器学习/深度学习 数据采集 自然语言处理
Python基于词袋模型特征和TFIDF特征进行支持向量机模型中文邮件分类项目实战
Python基于词袋模型特征和TFIDF特征进行支持向量机模型中文邮件分类项目实战
|
8月前
|
安全 数据安全/隐私保护 开发者
Python实现简单的邮件发送系统
Python实现简单的邮件发送系统
86 3
|
8月前
|
运维 Shell Linux
第十四章 Python发送邮件(常见四种邮件内容)
第十四章 Python发送邮件(常见四种邮件内容)