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编写一个简单的FUSE文件系统的教程
Apr 02 Python
python安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
对Python闭包与延迟绑定的方法详解
Jan 07 Python
Python代理IP爬虫的新手使用教程
Sep 05 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
Python序列化模块JSON与Pickle
Jun 05 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
基于mysql的论坛(7)
2006/10/09 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
js工具方法弹出蒙版
2013/05/08 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
Python识别html主要文本框过程解析
2020/02/18 Python
公共事业管理本科生求职信
2013/10/07 职场文书
一名女生的自荐信
2013/12/08 职场文书
数学系毕业生的自我评价
2014/01/10 职场文书
培训主管岗位职责
2014/02/01 职场文书
网络优化专员求职信
2014/05/04 职场文书
银行授权委托书样本
2014/10/13 职场文书
2014年计生工作总结
2014/11/21 职场文书
小学科学教学计划
2015/01/21 职场文书
世界遗产的导游词
2015/02/13 职场文书
航班延误投诉信
2015/07/02 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS