利用Python编辑一个发送邮件的脚本
相关参数
"""
可选参数
text 邮件正文内容(文本)
html 邮件附件内容(HTML)
image_path 邮件附件内容(图片路径)
att_path 邮件附件内容(文件路径)
"""
text = "Hi!你好啊!!\nHow are you?\nHere is the link you wanted:\nhttp://www.baidu.com"
html = """
<html> <head></head> <body> <p>Hi!<br> How are you?<br> Here is the <a href="http://www.baidu.com">link</a> you wanted.<br> </p> </body>
</html>
"""
image_path = "F:\爬虫\IMGS\image1.jpg"
att_path = r'F:\Python开发工程师测试题(一).docx'"""
必要参数
username 邮箱登陆账号
password 邮箱密码
subject 邮件主题
server 邮件服务器
sender 发送方
receiver 收件人(列表格式,多个收件人)
"""
username = "xxxx9.com"
password = 'xxxx
subject = '测试邮件'
server = 'smtp.139.com'
sender = 'xxx@139.com'
receiver = ['xxx@qq.com']
一:脚本的配置类
import smtplib, time, os
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.base import MIMEBase
from email import encodersclass Settings():#脚本配置类def __init__(self, username, password, subject, server, sender, receiver):self.server = serverself.sender = senderself.receiver = receiverself.username = usernameself.password = passwordself.subject = subject
二:构造邮件MIMEMultipart对象
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
class Message():# 构造邮件对象MIMEMultipart对象_msg = MIMEMultipart('mixed')def __init__(self, set, content):# 下面的主题,发件人,收件人,日期是显示在邮件页面上的。self._msg['Subject'] = set.subjectself._msg['From'] = set.username# 收件人为多个收件人,通过join将列表转换为以;为间隔的字符串self._msg['To'] = ";".join(set.receiver)self._msg['Date'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))self.content = contentdef get_msg(self):for info in self.content.get_content():if not info: continueself._msg.attach(info)return self._msg
三:构造邮件正文及附件内容
class EmailContent():def __init__(self, text=None, html=None, image_path=None, att_path=None):self.text = textself.image = image_pathself.html = htmlself.att_path = att_pathdef get_filename(self, path):import osreturn os.path.basename(path)@propertydef get_text(self):# 构造文本if not self.text:return Noneself.text_plain = MIMEText(self.text, 'plain', 'utf-8')return self.text_plain@propertydef get_image(self):# 构造图片链接if not self.image:return Noneif not os.path.exists(self.image):raise FileNotFoundError("Not Find This File")filename = self.get_filename(self.image)self.sendimagefile = open(r'%s' % self.image, 'rb').read()self.image = MIMEImage(self.sendimagefile)self.image.add_header('Content-Disposition', 'attachment', filename=('gbk', '', filename))return self.image@propertydef get_html(self):# 构造htmlif not self.html:return Noneself.text_html = MIMEText(self.html, 'html', 'utf-8')self.text_html["Content-Disposition"] = 'attachment; filename="TEXT/HTML.html"'return self.text_html@propertydef get_att(self):"# 构造附件"if not self.att_path:return Noneif not os.path.exists(self.att_path):raise FileNotFoundError("Not Find This File")filename = self.get_filename(self.att_path)self.att = MIMEBase('application', 'octet-stream')self.att.set_payload(open(self.att_path, 'rb').read())self.att.add_header('Content-Disposition', 'attachment', filename=('gbk', '', filename))encoders.encode_base64(self.att)return self.attdef get_content(self):
四:邮件发送服务类
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
class Smtp():_smtp = smtplib.SMTP()def __init__(self, set, msg):self.set = setself.msg = msgdef _connect(self):self._smtp.connect(self.set.server)def _login(self):self._smtp.login(self.set.username, self.set.password)def _sendmail(self):self._smtp.sendmail(self.set.sender, self.set.receiver, self.msg.as_string())def _quit(self):self._smtp.quit()def start(self):self._connect()self._login()self._sendmail()self._quit()
五:主程序
if __name__ == '__main__':set = Settings(username, password, subject, server, sender, receiver)content = EmailContent(text=text, image_path=image_path, att_path=att_path, html=html)message = Message(set, content)msg = message.get_msg()smtp = Smtp(set, msg)smtp.start()
利用Python编辑一个发送邮件的脚本相关推荐
- python制作阴阳师脚本_利用python制作一个阴阳师小游戏
利用python制作一个阴阳师小游戏 发布时间:2020-11-27 13:59:49 来源:亿速云 阅读:84 这期内容当中小编将会给大家带来有关利用python制作一个阴阳师小游戏,文章内容丰富且 ...
- python扫雷脚本_利用 Python 实现 自动扫雷 小脚本
原标题:利用 Python 实现 自动扫雷 小脚本 自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式.一.准备工作1.扫雷游戏 我是 ...
- java调python 监控_利用Python实现一个简单的系统监控图表
作为运维人员,想必大家肯定都做过这样的事情:为了监控系统资源使用情况,开了若干个窗口,来回切换看输出: 只要我切得够快,性能异常点就逃不过我的眼睛! 这个时候你要是有个监控工具自然是很好的,例如我们美 ...
- python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?
原标题:技术图文:如何利用 Python 做一个简单的定时器类? 背景 今天在B站上看有关 Python 最火的一个教学视频 -- "零基础入门学习 Python",这也是我们 P ...
- python推荐_利用Python构建一个简单的推荐系统
原标题:利用Python构建一个简单的推荐系统 摘要:快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫.在此之前读者需要对pandas和numpy等数据分析包有所了解. 什么 ...
- python抽奖游戏_利用Python写一个抽奖程序,解密游戏内抽奖的秘密
原标题:利用Python写一个抽奖程序,解密游戏内抽奖的秘密 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客 ...
- python推箱子小游戏_小伙利用Python自制一个推箱子小游戏!
原标题:小伙利用Python自制一个推箱子小游戏! 导语 月初更波python制作小游戏系列吧用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧 小伙利用Python自制一个推箱子 ...
- python数据预测_利用Python编写一个数据预测工具
利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...
- python推荐系统-利用python构建一个简单的推荐系统
摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...
最新文章
- f, (ax1, ax2) = plt.subplots(1, 2, figsize=(20,10)) //该句搭框架,确定输出1行x2列的图象,图片尺寸为20x10英寸
- strcpy会覆盖原来的吗_幽默你真的会了吗?原来可以这么简单
- Scrapy介绍及入门
- vue js 工具方法封装js 文件
- python适用的操作系统是_操作系统先来先服务python
- java 抽象类_什么是final?Java抽象类又是什么?抽象类能使用 final 修饰吗?
- insert时调用本身字段_python3调用企业微信api!开发一款属于自己的企业微信
- 网上图书商城项目学习笔记-008修改密码功能
- Vue入门之animate过渡动画效果
- IOS控件圆角、描边
- UCF101和HMDB51数据集的处理 for Human Action Recognition
- Echarts美国地图
- Win11如何调整鼠标dpi?Win11调整鼠标dpi的方法
- vc如何引入lib库
- 计算机系统漏洞及防范,计算机系统漏洞以及防范的措施.doc
- 认知升级是比其他一切技能都更为重要的思维模式转变
- python学习(七)----time模块相关函数
- 我最爱用的一款 Redis 可视化管理工具——Another Redis Desktop Manager
- 【WPS】WPS的JS宏脚本编写总结
- Green Plum 备份恢复集成方案