python封装email模块
2023-09-14 08:59:07 时间
一、代码
from email.mime.text import MIMEText from email.header import Header from email.utils import parseaddr, formataddr from smtplib import SMTP_SSL class MailManager(object): smtp_server = 'smtp.qq.com' def __init__(self, from_addr, password, to_addr, type,name=''): ''' :param from_addr: 发送者 :param password: 授权码 :param to_addr: 接受者 :param type: 发送类型,html,plain :param name: 邮件标题 ''' self.password = password self.from_addr = from_addr self.to_addr = to_addr self.name = name self.type=type @staticmethod def _format_addr(s): # 格式化email的头部信息 name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) def newMail(self, content): # 创建一个MIMEText对象,content邮件正文内容 msg = MIMEText(content, self.type, 'utf-8') msg['From'] = self._format_addr(self.name + '后台系统 <%s>' % self.from_addr) msg['To'] = self._format_addr(self.name + '客服 <%s>' % self.to_addr) # 邮件标题 msg['Subject'] = Header(self.name + '系统通知', 'utf-8').encode() return msg def send(self, msg): # 通过ssl方式发送,服务器地址,端口 server = SMTP_SSL(self.smtp_server, 465) # 登录到邮箱 server.login(self.from_addr, self.password) # 发送邮件:发送方,收件方,要发送的消息 server.sendmail(self.from_addr, [self.to_addr], msg.as_string()) server.quit() def SendMail(self, content): try: msg = self.newMail(content) self.send(msg) except Exception as e: print(e) if __name__ == '__main__': email=MailManager(from_addr="填写自己的", password="填写自己的", to_addr="填写自己的", name="orange", type="html") email.SendMail(''' <p><a href="http://www.baidu.com">这是一个链接</a></p> ''')
相关文章
- Python面试基础知识_python自学需要哪些基础知识
- python实现矩阵的转置_Python实现矩阵转置的方法分析
- Python入门系列(五)一篇搞懂python语句
- python hashlib_Python hashlib模块实例使用详解
- 简述python变量的命名规则_Python 变量命名规则
- Python&R语言-python和r相遇
- 用python 画几个简单图案
- python监控网页内容变化_使用Python监控文件内容变化代码实例
- python chr()和ord()_Python函数ord
- Python石头剪刀布小游戏
- python读取pkl_Python读取文件的一段内容
- Python中list转成Json字符串
- Python的基础知识_python的基本知识点
- python unix时间戳_python24小时12小时转换
- Python 封装SNMP调用接口
- Python语言如何在一个单独的线程中进行快速的IO操作
- python用ARIMA模型预测CO2浓度时间序列实现|附代码数据
- Python自动化测试之自定义日志及其封装
- 100天精通Python丨办公效率篇 —— 07、Python自动化操作 Excel(读写、增删改查、分组统计)
- Python面向对象编程-三大特性-封装
- Python文件基本操作(入门必读)
- python改变图片尺寸详解编程语言
- python_Day42_线程池详解编程语言
- Linux下如何快速卸载Python环境(linux如何卸载python)
- Python 2to3:自动将Python 2.x代码转换成Python3.x代码
- Python操作Redis实现数据持久化(python操作redis)
- Python连接MySQL数据库:初学者指南(python入mysql)
- Python爬取MySQL数据,助力数据分析(python读取mysql数据)
- Python操作MySQL数据库的必备模块mysqlpython(mysql_python)
- python解析xml模块封装代码
- 用smtplib和email封装python发送邮件模块类分享