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 相关文章推荐
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
pytorch 更改预训练模型网络结构的方法
Aug 19 Python
Django之PopUp的具体实现方法
Aug 31 Python
python实现简单成绩录入系统
Sep 19 Python
QML使用Python的函数过程解析
Sep 26 Python
python爬虫之遍历单个域名
Nov 20 Python
3种python调用其他脚本的方法
Jan 06 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 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图像处理类代码分享
2012/01/19 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
php mail to 配置详解
2014/01/16 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
js如何打印object对象
2015/10/16 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
Node.js实现文件上传
2016/07/05 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
python文件比较示例分享
2014/01/10 Python
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
公司员工检讨书
2014/02/08 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
留学经费担保书
2014/05/12 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
体育教师研修感悟
2015/11/18 职场文书
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers