python 发邮件-带附件-文本-html
- #!/usr/bin/python
- # encoding=utf-8
- # Filename: send_email.py
- from email.mime.image import MIMEImage
- from email.mime.multipart import MIMEMultipart
- from email.mime.text import MIMEText
- import smtplib
- class SendEmail:
- # 构造函数:初始化基本信息
- def __init__(self, host, user, passwd):
- lInfo = user.split("@")
- self._user = user
- self._account = lInfo[0]
- self._me = self._account + "<" + self._user + ">"
- server = smtplib.SMTP()
- server.connect(host)
- server.login(self._account, passwd)
- self._server = server
- # 发送文件或html邮件
- def sendTxtMail(self, to_list, sub, content, subtype='html'):
- # 如果发送的是文本邮件,则_subtype设置为plain
- # 如果发送的是html邮件,则_subtype设置为html
- msg = MIMEText(content, _subtype=subtype, _charset='utf-8')
- msg['Subject'] = sub
- msg['From'] = self._me
- msg['To'] = ";".join(to_list)
- try:
- self._server.sendmail(self._me, to_list, msg.as_string())
- return True
- except Exception, e:
- print str(e)
- return False
- # 发送带附件的文件或html邮件
- def sendAttachMail(self, to_list, sub, content, subtype='html'):
- # 创建一个带附件的实例
- msg = MIMEMultipart()
- # 增加附件1
- att1 = MIMEText(open(r'D:\javawork\PyTest\src\main.py','rb').read(), 'base64', 'utf-8')
- att1["Content-Type"] = 'application/octet-stream'
- # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
- att1["Content-Disposition"] = 'attachment; filename="main.py"'
- msg.attach(att1)
- # 增加附件2
- att2 = MIMEText(open(r'D:\javawork\PyTest\src\main.py','rb').read(), 'base64', 'utf-8')
- att2["Content-Type"] = 'application/octet-stream'
- att2["Content-Disposition"] = 'attachment; filename="main.txt"'
- msg.attach(att2)
- # 增加邮件内容
- msg.attach(MIMEText(content, _subtype=subtype, _charset='utf-8'))
- msg['Subject'] = sub
- msg['From'] = self._me
- msg['To'] = ";".join(to_list)
- try:
- self._server.sendmail(self._me, to_list, msg.as_string())
- return True
- except Exception, e:
- print str(e)
- return False
- # 发送带附件的文件或html邮件
- def sendImageMail(self, to_list, sub, content, subtype='html'):
- # 创建一个带附件的实例
- msg = MIMEMultipart()
- # 增加邮件内容
- msg.attach(MIMEText(content, _subtype=subtype, _charset='utf-8'))
- # 增加图片附件
- image = MIMEImage(open(r'D:\javawork\PyTest\src\test.jpg','rb').read())
- #附件列表中显示的文件名
- image.add_header('Content-Disposition', 'attachment;filename=p.jpg')
- msg.attach(image)
- msg['Subject'] = sub
- msg['From'] = self._me
- msg['To'] = ";".join(to_list)
- try:
- self._server.sendmail(self._me, to_list, msg.as_string())
- return True
- except Exception, e:
- print str(e)
- return False
- # 析构函数:释放资源
- def __del__(self):
- self._server.quit()
- self._server.close()
- mailto_list = ['xxx@163.com']
- mail = SendEmail('smtp.163.com', 'xxx@163.com', 'xxxxxx')
- if mail.sendTxtMail(mailto_list, "测试邮件", "hello world!<br><br><h1>你好,发送文本文件测试<h1>"):
- print "发送成功"
- else:
- print "发送失败"
- if mail.sendAttachMail(mailto_list, "测试邮件-带两个附件", "hello world!<br><br><h1>你好,发送文本文件测试<h1>"):
- print "发送成功"
- else:
- print "发送失败"
- if mail.sendImageMail(mailto_list, "测试邮件-带一个图片的附件", "hello world!<br><br><h1>你好,发送文本文件测试<h1>"):
- print "发送成功"
- else:
- print "发送失败"
http://www.open-open.com/lib/view/open1392606528163.html
python 发邮件-带附件-文本-html的更多相关文章
- Java发邮件带附件测试通过
package cn.bric.crm.util; import java.util.Date; import java.util.Enumeration; import java.util.Prop ...
- kettle 发邮件带附件
新建一个job,主要用到的组件有两个,如下图: 首先点击下图的文件,选择你要做为邮件附件的文件.选完后会在前辈的文件.目录中显示.然后点击增加,会下面文件列表中显示已经添加的文件(涂黄色的部分) 按下 ...
- Java发邮件带附件(且重命名附件)
环境:spring3.2.2+jquery 用户的附件管理要实现发送附件可以是单个也可以是多个.由于用户在上传附件的时候采用了重命名机制,所以存在服务器上的文件是重命名后的文件,如果用户要将文件以邮件 ...
- 如何用python发邮件
python发送各类邮件的主要方法 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1.smtplib模块 smtplib.SM ...
- Python 发邮件例子
Python 发邮件例子 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-04-23 16:12:33 # @Autho ...
- python发邮件遇到的端口号问题
在学习使用python发邮件的过程中, 遇到了一个问题:由于测试的时候使用的是QQ邮箱,要求必须使用SSL/TLS加密,所以有了下面的代码, from email.mime.text import M ...
- 使用python发邮件
使用python发邮件 网上有很多发邮件的例子,本人在网上找了一份,稍加修改后使用 上源码 # encoding=utf-8 from email.mime.image import MIMEImag ...
- python smtp 发邮件 添加附件
# -*- coding:utf-8 -*- # __author__ = 'justing' import os import smtplib from email.mime.multipart i ...
- python 发送email邮件带附件
EMAIL功能实现: 1.发送EMAIL带附件,并且带压缩文件夹做为附件 #_*_coding:utf-8_*_ import smtplib from email.mime.text import ...
随机推荐
- js 布尔值作为开关判断
var flag = true; $("#more_info").click(function() { if( flag ){ $("#more_xl_more" ...
- iOS学习之设计模式
iOS开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~ (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现. 优势:解耦合 敏捷 ...
- android自定义按键
android自带菜单键.返回键.搜索键的重写 转自:http://blog.sina.com.cn/s/blog_7cb9b3b801015yk8.html 返回键 public void on ...
- oracle length and lengthb
LENGTH──返回以字符为单位的字符串长度. LENGTHB──返回以字节为单位的字符串长度,它和类型定义中的长度是一个概念,比如你定义的varchar2(10)中的10.在不同的数据库,因为字符集 ...
- vld使用
1.下载VLD官方版本 2.安装 3.在vs里面的属性里->c/c++->常规->副含附加目录 C:\Program Files (x86)\Visual Leak Detecto ...
- 2014西安现场赛F题 UVALA 7040
地址 题意:求在m种颜色中挑选k种颜色,给n个花朵涂色有几种方法. 分析:画图可以发现,基本的公式就是k ×(k-1)^(n-1).但这仅保证了相邻颜色不同,总颜色数不超过k种,并没有保证恰好出现k种 ...
- C# 属性和字段的区别
属性和字段的区别 在C#中,我们可以非常自由的.毫无限制的访问公有字段, 但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值.或是要求字段只能读或只能写, 或是在改变字段时能改变对象的其他一些 ...
- C#使用QQ邮箱发送邮件
首先要开通QQ邮箱的STMP服务.QQ邮箱——设置——账户——开启SMTP服务. 需要引用: using System.Net; using System.Net.Mail; using System ...
- UIView---汇总
视图.绘图.贴图.手势.变形.布局.动画.动力.特效 UIBezierPath.UIGestureRecognizer.CGAffineTransform.frame.bounds.center.tr ...
- capwap DTSL 加密分析
1.概述 DTLS即Datagram Transport Layer Security (RFC4347),AP加入AC前,先进行DTLS验证,当AP与AC之间的DTLS握手成功后,AP发出Join请 ...