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 ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
Python标准库之Sys模块使用详解
May 23 Python
Django中对数据查询结果进行排序的方法
Jul 17 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
Python实现的用户登录系统功能示例
Feb 05 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 Python
用python3教你任意Html主内容提取功能
Nov 05 Python
详解分布式任务队列Celery使用说明
Nov 29 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
python写一个随机点名软件的实例
Nov 28 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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
二招解决php乱码问题
2012/03/25 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
php中上传文件的的解决方案
2018/09/25 PHP
accesskey 提交
2006/06/26 Javascript
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
一分钟理解js闭包
2016/05/04 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
python实现自动重启本程序的方法
2015/07/09 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
是否有自动比较结构的方法
2015/06/03 面试题
关于毕业的广播稿
2014/01/10 职场文书
小学生新年寄语
2014/04/03 职场文书
小学家长评语大全
2014/04/16 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
国际金融专业自荐信
2014/07/05 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python