Python 邮件
邮件的三种协议
POP3
POP3 是点在邮件的第一个离线协议标准,POP3 允许用户从服务器上把邮件存储到本地主机(即自己的计算机),POP3 协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件,标记已读 等) 不会反馈到服务器上
SMTP
SMTP 的全称是’Simple Mail Transfer Protocol’ 即简单邮件传输协议.它是一组用于从源地址到目的地址传输邮件的规范,通过它老控制邮件的中转方式,SMTP 协议属于 TCP/IP 协议 它帮助每台计算机在发送或中转信件时候找到下一个目的地,SMTP 服务器就是遵循 SMTP 协议的发送邮件的服务器
SMTP 简单的说就是要求必须在提供了账户名和密码之后才能登陆 SMTP 服务器这就使得那些垃圾邮件散播着无可趁之机
IMAP
它跟 POP3 类似邮件访问标准协议。不同的是开启了 IMAP 后在电子邮件客户端收取的邮件仍然保留在服务器上。同时在客户端上的操作都会反馈到服务器上比如删除邮件。标记已读等等。服务器上的邮件也会做相应的动作
利用 Python 发送邮件
第一步安装类库
pip install yagmail
pip install keyring
第一步去设置邮箱
设置你想要给别人发送的邮箱
开启 IMAP/SMTP 或者 POP3/SMTP 服务
记录下密码。以后会用到
第二步注册密码和账号
import yagmail
yagmail.register('xx你的邮箱名xx', 'xxxx这里就是你开启SMTP后获取到的密码xxx')
# 结果
# 注册成功后 就没有必要在注册了
第三步正式开始发送邮件
但是注意不要特别频繁的发送邮件,否则会当作垃圾邮件
基础版
import yagmail
yag = yagmail.SMTP(user='26650599@qq.com', host='smtp.qq.com')
contents = ['这就是正文,并且我想让你看看有没有效果']
yag.send('2993222085@qq.com', '练习Python指南', contents)
发送带有 HTML 文件的 Email,和加载附件的 Email
- send 三个参数 目标邮箱的地址,标题,[附件的地址] 路径/变成\
import yagmail
import time
yag = yagmail.SMTP(user='26650599@qq.com', host='smtp.qq.com')
try:
with open("./moban.html", 'r', encoding='utf8') as items:
content = items.readlines()
newresult = []
for content_item in content:
if ("因为" in content_item):
newresult_item = content_item.replace(
"因为", "替换了因为") # 因为他不会改变原数组所以必须重新存储
newresult.append(newresult_item)
else:
newresult.append(content_item)
time.sleep(1) # 暂停一秒钟等待赋值完成
yag.send('2993222085@qq.com', '带有HTML的Python', newresult, [
'C:/Users/Administrator/Desktop/tupian.jpg'])
except:
print("打不开")
# 结果 发送成功