Python 收发邮件

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("打不开")

# 结果 发送成功

文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录