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中的yield浅析
Jun 16 Python
9种python web 程序的部署方式小结
Jun 30 Python
在Python的Django框架中使用通用视图的方法
Jul 21 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
Python 50行爬虫抓取并处理图灵书目过程详解
Sep 20 Python
pytorch 数据处理:定义自己的数据集合实例
Dec 31 Python
python matplotlib包图像配色方案分享
Mar 14 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
如何用python免费看美剧
Aug 11 Python
Python max函数中key的用法及原理解析
Jun 26 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入门速成(2)
2006/10/09 PHP
简单的PHP图片上传程序
2008/03/27 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
checkbox 复选框不能为空
2009/07/11 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现进程间通信简单实例
2014/07/23 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
清明节扫墓活动方案
2014/03/02 职场文书
工作说明书范文
2014/05/07 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
MySQL之DML语言
2021/04/05 MySQL
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS