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生成器(Generator)详解
Apr 13 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
django的ORM模型的实现原理
Mar 04 Python
pyqt5实现登录界面的模板
May 30 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
Apr 29 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
python tkinter基本属性详解
Sep 16 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
Python3中PyQt5简单实现文件打开及保存
Jun 10 Python
python在package下继续嵌套一个package
Apr 14 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代码
2008/04/09 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
关于element的表单组件整理笔记
2021/02/05 Javascript
python解析文件示例
2014/01/23 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
python实现简单http服务器功能
2018/09/17 Python
python中的json总结
2018/10/11 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
10款最好的Python开发编辑器
2019/07/03 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
学生实习推荐信范文
2013/11/26 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
2015元旦标语横幅
2014/12/09 职场文书
涨价通知怎么写
2015/04/23 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript
最新最全的手机号验证正则表达式
2022/02/24 Javascript