栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

〖Python自动化办公篇⑳〗 - python实现邮件自动化 - 发送html邮件和带附件的邮件

Python 更新时间:发布时间: 百科书网 趣学号
万叶集
 隐约雷鸣,阴霾天空。 
 但盼风雨来,能留你在此。 

前言:
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 哈士奇 ,致力于用白话讲解技术知识的博主 ✌
CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 
 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。
 如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦


系列专栏:
                Python全栈系列 - [更新中]     【 本文在该系列】
                        Python零基础入门篇
                        Python语法进阶篇
                        Python自动化办公篇
                网安之路系列
​                        网安之路踩坑篇
​                        网安知识扫盲篇
​                        Vulhub 漏洞复现篇
​                        Shell脚本编程篇
​                        Web攻防篇   2021年9月3日停止更新,转战先知等安全社区
​                        渗透工具使用集锦  2021年9月3日停止更新,转战先知等安全社区
​                ⭐️ 点点点工程师系列
​                        测试神器 - Charles 篇
​                        测试神器 - Fiddler 篇
​                        测试神器 - Jmeter 篇
​                        自动化 - RobotFrameWork 系列
​                        自动化 - 基于 JAVA 实现的WEB端UI自动化
                        自动化 - 基于 MonkeyRunner 实现的APP端UI自动化



文章目录
    •  发送 html 邮件
    •  发送带有"附件"的邮件

上一章节我们学习了利用 smtplib 模块 与 email 包发送普通文本的邮件,也简单的了解了 SMTP 协议。今天将学习一下如何发送 html 邮件以及带有附件的邮件。

 发送 html 邮件

如果想要发送 html 格式的邮件,需要在 email 包中做一些 “手脚” 。

上一章节我们在使用的 email 包的时候使用到了 MIMEText 函数,这里再回顾一下:

函数名参数说明
MIMEText邮件内容、邮件类型、编码格式定义邮件发送内容的对象

当时我们所使用的 “邮件类型” 是 “plain” 类型(即普通文本类型),接下来我们将使用 “html” 类型

邮件类型说明
plain普通文本类型
htmlhtml类型

代码示例如下:(修改上一章节中的 plain 类型为 html)

# coding:utf-8


import smtplib

from email.mime.text import MIMEText
from email.header import Header


'''
第三方的 smpt [脚本中涉及的邮箱地址都是假的,请使用自己的真实邮箱地址进行测试]
'''

mail_host = "smtp.sina.com"     # 设置邮箱服务器
mail_user = "conan868242"       # 设置自己的邮箱
mail_pass = "cb997b01a87232b2"  # 这里就是邮箱的口令,也就是授权码;不是密码。

sender = "conan868242@sina.com"     # 定义发送者邮箱(其实就是自己)
receivers = ["3241716373@qq.com"]   # 定义接受者邮箱(可以是多个接收者)

message = MIMEText('

这是一个测试

', "html", "utf-8") # 定义邮件内容;"plain"是格式,表示是普通的文件内容 message["From"] = Header(sender) # 在message内定义发送信息 --> 发送者 message["Subject"] = Header("Python 测试邮件发送", "utf-8") # 在message内定义发送信息的标题 print("加密后的发送内容n", message.as_string()) # 打印输出加密后的发送内容 try: # 捕获发送邮件的异常 smtpObj = smtplib.SMTP() # 实例化 SMTP 协议对象 smtpObj.connect(mail_host, 25) # 链接 SMTP 服务器 smtpObj.login(mail_user, mail_pass) # 登录邮箱验证 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送邮件; "message" 通过 "as_string()" 进行发送内容字符串的加密 except smtplib.SMTPException as error: print("error:{}".format(error))

运行结果如下:



 发送带有"附件"的邮件

依然是对 email 包动一些手脚,这里要接触一个新的函数 --> MIMEMultipart 。

函数名参数说明
MIMEMultipart定义带有附件的邮件对象

PS:需要 from email.mime.multipart import MIMEMultipart 导入 MIMEMultipart

代码示例如下:

# coding:utf-8


import smtplib

from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart


'''
第三方的 smpt [脚本中涉及的邮箱地址都是假的,请使用自己的真实邮箱地址进行测试]
'''

mail_host = "smtp.sina.com"     # 设置邮箱服务器
mail_user = "conan868242"       # 设置自己的邮箱
mail_pass = "cb997b01a87232b2"  # 这里就是邮箱的口令,也就是授权码;不是密码。

sender = "conan868242@sina.com"     # 定义发送者邮箱(其实就是自己)
receivers = ["3241716373@qq.com"]   # 定义接受者邮箱(可以是多个接收者)

# message = MIMEText('

这是一个测试

', "html", "utf-8") # 定义邮件内容;"plain"是格式,表示是普通的文件内容 message = MIMEMultipart() # 定义带有附件的邮件对象 message["From"] = Header(sender) # 在message内定义发送信息 --> 发送者 message["Subject"] = Header("Python 测试邮件发送", "utf-8") # 在message内定义发送信息的标题 # print("加密后的发送内容n", message.as_string()) # 打印输出加密后的发送内容 attr = MIMEText(open('send.py', 'rb').read(), 'base64', 'utf-8') # 定义带有附件的邮件发送内容;(默认是一种属性); # 以 open 的形式将需要发送的文件读出来 # 定义内容为"base64"格式 attr['Content-Type'] = 'application/octet-stream' # 针对属性进行格式上的定义;"application/octet-stream"代表着流上的一种协议 # 即定义 "附件" 的类型 attr['Content-Disposition'] = 'attachment;filename="send.py"' # 针对传输的附件定义一个名称 message.attach(attr) # 利用 "message" 的 "attach" 函数将 "附件" 添加进去 message = MIMEText('这是一个带附件的邮件', "plain", "utf-8") # 定义邮件文字内容(即添加邮件的主内容) try: # 捕获发送邮件的异常 smtpObj = smtplib.SMTP() # 实例化 SMTP 协议对象 smtpObj.connect(mail_host, 25) # 链接 SMTP 服务器 smtpObj.login(mail_user, mail_pass) # 登录邮箱验证 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送邮件; "message" 通过 "as_string()" 进行发送内容字符串的加密 except smtplib.SMTPException as error: print("error:{}".format(error))

运行结果如下:



PS:这就是使用附件发送邮件的形式,该章节内容就到这里了哈。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/925452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号