python实现发送邮件及附件功能


Posted in Python onMarch 02, 2021

今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题:

本人是mac如果没有按照依赖模块的请按照下面的截图安装

python实现发送邮件及附件功能

导入模块如果没有错误,表示已经安装成功。

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 文件与目录操作
Dec 24 Python
python实现矩阵乘法的方法
Jun 28 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
Aug 07 Python
Python计时相关操作详解【time,datetime】
May 26 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 Python
单链表反转python实现代码示例
Feb 08 Python
提升Python程序性能的7个习惯
Apr 14 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
使用Django搭建一个基金模拟交易系统教程
Nov 18 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
Python绘制全球疫情变化地图的实例代码
Apr 20 Python
从0到1使用python开发一个半自动答题小程序的实现
May 12 Python
利用python微信库itchat实现微信自动回复功能
May 18 #Python
利用Python读取文件的四种不同方法比对
May 18 #Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 #Python
Python使用time模块实现指定时间触发器示例
May 18 #Python
Python实现的文本简单可逆加密算法示例
May 18 #Python
Python操作MongoDB详解及实例
May 18 #Python
Python 迭代器与生成器实例详解
May 18 #Python
You might like
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
python重要函数eval多种用法解析
2020/01/14 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
Python如何解除一个装饰器
2020/08/07 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
在职人员函授期间自我评价分享
2013/11/08 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
学生安全责任书
2014/04/15 职场文书
单位在职证明书
2014/09/11 职场文书
大学生见习报告范文
2014/11/03 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
承诺函格式模板
2015/01/21 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
葬礼主持词
2015/07/02 职场文书
六年级语文教学反思
2016/03/03 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技