python发送邮件及附件
今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题:
本人是mac如果没有按照依赖模块的请按照下面的截图安装
导入模块如果没有错误,表示已经安装成功。
Python发送一个未知MIME类型的文件附件其基本思路如下:
1. 构造MIMEMultipart对象做为根容器
2. 构造MIMEText对象做为邮件显示内容并附加到根容器
3. 构造MIMEBase对象做为文件附件内容并附加到根容器
a. 读入文件内容并格式化
b. 设置附件头
4. 设置根容器属性
5. 得到格式化后的完整文本
6. 用smtp发送邮件
实例代码:
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- import smtplib
- from email.mime.multipart import MIMEMultipart
- from email.mime.text import MIMEText
- from email.mime.application import MIMEApplication
- class Mailer(object):
- def __init__(self,maillist,mailtitle,mailcontent):
- self.mail_list = maillist
- self.mail_title = mailtitle
- self.mail_content = mailcontent
- self.mail_host = "smtp.163.com"
- self.mail_user = "your email name"
- self.mail_pass = "your email password"
- self.mail_postfix = "163.com"
- def sendMail(self):
- me = self.mail_user + "<" + self.mail_user + "@" + self.mail_postfix + ">"
- msg = MIMEMultipart()
- msg['Subject'] = 'Python mail Test'
- msg['From'] = me
- msg['To'] = ";".join(self.mail_list)
- #puretext = MIMEText('<h1>你好,<br/>'+self.mail_content+'</h1>','html','utf-8')
- puretext = MIMEText('纯文本内容'+self.mail_content)
- msg.attach(puretext)
- # jpg类型的附件
- jpgpart = MIMEApplication(open('/home/mypan/1949777163775279642.jpg', 'rb').read())
- jpgpart.add_header('Content-Disposition', 'attachment', filename='beauty.jpg')
- msg.attach(jpgpart)
- # 首先是xlsx类型的附件
- #xlsxpart = MIMEApplication(open('test.xlsx', 'rb').read())
- #xlsxpart.add_header('Content-Disposition', 'attachment', filename='test.xlsx')
- #msg.attach(xlsxpart)
- # mp3类型的附件
- #mp3part = MIMEApplication(open('kenny.mp3', 'rb').read())
- #mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3')
- #msg.attach(mp3part)
- # pdf类型附件
- #part = MIMEApplication(open('foo.pdf', 'rb').read())
- #part.add_header('Content-Disposition', 'attachment', filename="foo.pdf")
- #msg.attach(part)
- try:
- s = smtplib.SMTP() #创建邮件服务器对象
- s.connect(self.mail_host) #连接到指定的smtp服务器。参数分别表示smpt主机和端口
- s.login(self.mail_user, self.mail_pass) #登录到你邮箱
- s.sendmail(me, self.mail_list, msg.as_string()) #发送内容
- s.close()
- return True
- except Exception, e:
- print str(e)
- return False
- if __name__ == '__main__':
- #send list
- mailto_list = ["aaa@lsh123.com","bbb@163.com"]
- mail_title = 'Hey subject'
- mail_content = 'Hey this is content'
- mm = Mailer(mailto_list,mail_title,mail_content)
- res = mm.sendMail()
- print res
python发送邮件及附件的更多相关文章
- python 发送邮件 带附件
# coding:utf-8 # __author__ = 'Mark sinoberg' # __date__ = '2016/5/26' # __Desc__ = 实现发送带有各种附件类型的邮件 ...
- Python 发送邮件包含附件报表示例
之前需要用Python发送报表邮件,在网上找了下资料,基本上符合要求了. 相关的示例如下,懂python的人应该都知道. from email.mime.text import MIMEText fr ...
- Python发送邮件(带附件的)
有时候做自动化测试任务,任务完成后,需要将结果自动发送一封邮件,这里用到smtplib模块,直接导入就行,这里以163邮箱为例,需要用到授权码,我用类写一下: 如果是发送qq邮箱,要将smtp 改成s ...
- 【转】【Python】Python发送邮件(常见四种邮件内容)
在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调 ...
- python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)
简介 本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理.在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下, ...
- Python发送邮件(常见四种邮件内容)
Python发送邮件(常见四种邮件内容) 转载 2017年03月03日 17:17:04 转自:http://lizhenliang.blog.51cto.com/7876557/1875330 ...
- python发送邮件
python发送邮件(无附件) ======================================================= #!/usr/bin/env python#coding ...
- 解读Python发送邮件
解读Python发送邮件 Python发送邮件需要smtplib和email两个模块.也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单.今天,就来好好学习一下使用Pyt ...
- python 发送邮件例子
想到用python发送邮件 主要是服务器 有时候会产生coredump文件 ,然后因为脚本重启原因,服务器coredump产生后会重启 但是没有主动通知开发人员 想了下可以写个脚本一旦产生cored ...
随机推荐
- winform下的简易播放器
编写这个播放器,遇到很多问题,比如目前只实现了wav音频文件的播放,而对于这个图中中间所标注的按钮 不能实现让其暂停的功能,同时当点击的时候,让其文本变为"▷",对于这部分功能不知 ...
- Android SDK Manager 更新代理配置
转自:http://www.cnblogs.com/tao560532/p/4483067.html 出现问题: 消除SDK更新时,有可能会出现这样的错误:Download interrupted: ...
- ACM : POJ 2676 SudoKu DFS - 数独
SudoKu Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu POJ 2676 Descr ...
- mysql存不了中文的解决办法
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&characterEnco ...
- 管理Scope和Lifetime
Nick Blumhardt’s Autofac lifetime primer 是一个学习Autofac Scope和Lifetime的好地方.这里有很多未理解的,混淆的概念,因此我们将尝试在这里完 ...
- bzoj3631树链剖分
虽然是水题1A的感觉太爽了O(∩_∩)O~ 题意相当于n-1次树上路径上每个点权值+1,最后问每个点的权值 本来想写线段树,写好了change打算框架打完了再来补,结果打完发现只是区间加和单点查 前缀 ...
- Java的四种引用方式
一.引用基本概念 从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用.虚引用. 1.强引用(StrongRef ...
- Android进程间通讯
最近研究了一下Android进程间通讯,原来只是会用,但是只是会用是不行滴,就来研究一下. 刚开始看的时候,我的头是这么大,看了一夜的时候,头就变成这样了,,吓得宝宝赶紧上床休息了,. 先喝喝茶讲个故 ...
- 代码编辑器Sublime Text 3 免费使用方法与简体中文汉化包下载
Sublime Text这款代码编辑器是Jeff 一直都在使用的,前段时间转用到版本3,因为感觉Sublime Text 3 启动速度更加快,运行更加流畅——虽然3 还是在Beta 阶段.下面就直接分 ...
- 基于 Asp.Net的 Comet 技术解析
Comet技术原理 来自维基百科:Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流. 简单的说是一种基于现 ...