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 制作糗事百科爬虫实例
Sep 22 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
Jul 24 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
值得收藏的10道python 面试题
Apr 15 Python
详解爬虫被封的问题
Apr 23 Python
python3下载抖音视频的完整代码
Jun 05 Python
python实现抠图给证件照换背景源码
Aug 20 Python
python操作gitlab API过程解析
Dec 27 Python
python名片管理系统开发
Jun 18 Python
python mock测试的示例
Oct 19 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 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
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
Symfony核心类概述
2016/03/17 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
python下载文件时显示下载进度的方法
2015/04/02 Python
python中as用法实例分析
2015/04/30 Python
Python标准库sched模块使用指南
2017/07/06 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
python使用turtle库绘制时钟
2020/03/25 Python
python3.6数独问题的解决
2019/01/21 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Python3 assert断言实现原理解析
2020/03/02 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
经济学博士求职自荐信范文
2013/11/23 职场文书
办公室主任先进事迹
2014/01/18 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
联谊活动总结范文
2015/05/09 职场文书
《叶问2》观后感
2015/06/15 职场文书
学习党史心得体会2016
2016/01/23 职场文书