匿名发送邮件python_Python 发送邮件的四种方法汇总
这篇文章主要介绍了python 发送邮件的四种方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
这里针对smtplib做了一系列封装,可以完成以下四种场景:发送纯文本的邮件
发送html页面的邮件
发送带附件文件的邮件
发送能展示图片的邮件
以上四种场景,已经做好了二次封装,经测试OK,使用时直接传入对应参数即可,直接上代码
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
class SendEMail(object):
"""封装发送邮件类"""
def __init__(self, host, port, msg_from, pwd):
self.msg_from = msg_from
self.password = pwd
# 邮箱服务器地址和端口
self.smtp_s = smtplib.SMTP_SSL(host=host, port=port)
# 发送方邮箱账号和授权码
self.smtp_s.login(user=msg_from, password=pwd)
def send_text(self, to_user, content, subject, content_type='plain'):
"""
发送文本邮件
:param to_user: 对方邮箱
:param content: 邮件正文
:param subject: 邮件主题
:param content_type: 内容格式:'plain' or 'html'
:return:
"""
msg = MIMEText(content, _subtype=content_type, _charset="utf8")
msg["From"] = self.msg_from
msg["To"] = to_user
msg["subject"] = subject
self.smtp_s.send_message(msg, from_addr=self.msg_from, to_addrs=to_user)
def send_file(self, to_user, content, subject, reports_path, filename, content_type='plain'):
"""
发送带文件的邮件
:param to_user: 对方邮箱
:param content: 邮件正文
:param subject: 邮件主题
:param reports_path: 文件路径
:param filename: 邮件中显示的文件名称
:param content_type: 内容格式
"""
file_content = open(reports_path, "rb").read()
msg = MIMEMultipart()
text_msg = MIMEText(content, _subtype=content_type, _charset="utf8")
msg.attach(text_msg)
file_msg = MIMEApplication(file_content)
file_msg.add_header('content-disposition', 'attachment', filename=filename)
msg.attach(file_msg)
msg["From"] = self.msg_from
msg["To"] = to_user
msg["subject"] = subject
self.smtp_s.send_message(msg, from_addr=self.msg_from, to_addrs=to_user)
def send_img(self, to_user, subject, content, filename, content_type='html'):
'''
发送带图片的邮件
:param to_user: 对方邮箱
:param subject: 邮件主题
:param content: 邮件正文
:param filename: 图片路径
:param content_type: 内容格式
'''
subject = subject
msg = MIMEMultipart('related')
# Html正文必须包含
msg.attach(content)
msg['Subject'] = subject
msg['From'] = self.msg_from
msg['To'] = to_user
with open(filename, "rb") as file:
img_data = file.read()
img = MIMEImage(img_data)
img.add_header('Content-ID', 'imageid')
msg.attach(img)
self.smtp_s.sendmail(self.msg_from, to_user, msg.as_string())
以上就是python 发送邮件的四种方法汇总的详细内容,更多关于python学习知识请关注我,分享更多噢!
本文转载于:python 发送邮件的四种方法汇总www.jb51.net
匿名发送邮件python_Python 发送邮件的四种方法汇总相关推荐
- python苹果手机照片导入电脑_iphone照片怎么导入电脑?四种方法汇总
方法一:用itunes复制照片到电脑 1.在电脑上下载并安装itunes. 2.用USB数据线将iPhone和电脑连接好. 3.打开 电脑桌 面的我的电脑或者计算机. 4.点击一个相机图标的Apple ...
- html获取data-*值,html5 获取和设置data-*属性值的四种方法讲解
1.获取id的对象 2.需要获取的就是data-id 和 dtat-vice-id的值 一:getAttribute()方法 const getId = document.getElementById ...
- Simulink中构造时变传递函数的四种方法
1. 原由 传递函数是针对线性时不变(Linear Time-Invariant,LTI)系统定义的,严格来说,时变传递函数的说法并不十分严谨.但 "时变"和"非线性&q ...
- 学习笔记---将Asp.Net网站发布到IIS的四种方法及注意事项
将Asp.Net网站发布到IIS的四种方法及注意事项: 不管是那种发布方法, 第一件事情是让IIS能够支持asp.net程序, 默认IIS是不开器asp.net网站程序的支持的.在IIS中的" ...
- java 中lock,java中lock获取锁的四种方法
在java接口中会存放着许多方法,方便线程使用时的直接调用.对于lock接口大家都不陌生,我们已经初步对概念进行了理解.那么在获取锁的方法上想必还不是很清楚.下面我们就lock获取锁的四种方法分别进行 ...
- 简单介绍C语言使用四种方法初始化结构体
这篇文章说明了什么是结构体,介绍了结构体的概念和使用优点,在C语言中如何使用和初始化结构体方法,通过详细的代码展开进行说明,希望该篇文章对你有所帮助 什么是结构体 在实际问题中,一组数据往往有很多种不 ...
- svg鼠标响应事件的四种方法(其中两种可支持火狐)
svg鼠标响应事件的四种方法 鼠标响应事件的四种方法,以click事件为例. Mouse Events - SMIL <?xml version="1.0" encoding ...
- oracle调整字段精度的四种方法
oracle调整字段精度的四种方法: 01_执行用户_ddl/dml_表名_注释(建表/授权/同义词) 调整方式一:(精度只能调大不能调小) alter table table_name_a MODI ...
- (转).NET导出Excel的四种方法及评测
.NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspo ...
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
最新文章
- 浏览器内核Trident/Gecko/WebKit/Presto
- 群体决策是如何误入歧途的
- 四十一、深入Java中的 File类
- 变换上三角矩阵_关于马尔可夫矩阵的一些个人研究成果、思考过程及相关解释...
- KaliLinux-wafw00f简介及防火墙探测
- 《解析几何》吕林根,徐子道第四版 习题 1.4.7,1.4.8,1.4.9
- 【四足机器人那些事儿】MiniCheetah中的MPC控制
- 基于SSM+SpringBoot+Thymeleaf+LayUI的高校大学生成绩分析管理系统(附论文)
- php中lpush(),lPush 命令/方法/函数
- 栈和队列的共同处和不同处
- powershell快捷键_Windows10 PowerShell快捷键大全
- H5页面(三)效果之实现图片360度旋转---------spritespin.js插件
- 写好英语科技论文的诀窍: 主动迎合读者期望,预先回答专家可能质疑
- kubernetes日志架构
- bugku ctf 多种方法解决 (在做题过程中你会得到一个二维码图片)
- seaweedfs报存储错误
- LA 3406 Bingo *
- 广汉计算机哪个学校学最好,计算机专业四川省的广汉市哪个专业学院比较不错...
- 基于红外遥控的arduino遥控小车
- 前端JS常用工具方法 , 收藏