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中给List添加元素的4种方法分享
Nov 28 Python
在Django中创建动态视图的教程
Jul 15 Python
python的else子句使用指南
Feb 27 Python
python定时关机小脚本
Jun 20 Python
Python获取航线信息并且制作成图的讲解
Jan 03 Python
Python中如何使用if语句处理列表实例代码
Feb 24 Python
Python中按值来获取指定的键
Mar 04 Python
python之pexpect实现自动交互的例子
Jul 25 Python
Python time库基本使用方法分析
Dec 13 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
Python通过类的组合模拟街道红绿灯
Sep 16 Python
Python IO文件管理的具体使用
Mar 20 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
一个捕获函数输出的函数
2007/02/14 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
js字符编码函数区别分析
2008/06/05 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
如何快速上手Vuex
2017/02/14 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
Python 转义字符详细介绍
2017/03/21 Python
Python构建网页爬虫原理分析
2017/12/19 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
python如何导入依赖包
2020/07/13 Python
python 基于opencv实现图像增强
2020/12/23 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
增员口号大全
2014/06/18 职场文书
自主招生专家推荐信
2015/03/26 职场文书
企业工会工作总结2015
2015/05/13 职场文书
2015国庆节感想
2015/08/04 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL
实战Python爬虫爬取酷我音乐
2022/04/11 Python