python发送邮件实例分享


Posted in Python onJuly 28, 2017

为了更好的理解邮件发送功能的实现,要先了解邮件发送系统的大致流程。首先  电子邮件之间的相互发送接受就像  邮局邮件发送一样,从一个站点(邮件发送服务器)到目的地站点(邮件接收服务器),然后目的地站点处理收到的邮件,并发送给接受人。每个邮件服务器即担任发送也担任接受邮件,并且每个服务器地址,端口号,配置等也不同。

其实发送邮件的流程就 两部:

第一:写邮件

写好发送方,接受方
写好主题
写好正文(包括附件,图片等)
把信件整理在一起

第二:发送邮件

连接发送邮件服务器
登录邮箱
发送邮件
退出邮箱

代码部分:

# -*- coding:utf-8 -*-
import smtplib
from email.header import Header
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

#创建邮件对象,相当于信纸
msg = MIMEMultipart()
#邮件发送方
msg['From'] = 'XXXXXXXX.qq.com'
#邮件接收方
msg['To'] = '1212112@qq.com'
#邮件主题
msg['Subject'] = Header('这是邮箱主题部分', charset='UTF-8')#中文主题

#文本内容
txt = '亲爱的用户'
part1 = MIMEText(txt, 'plain', 'utf-8')
#添加到邮件中
msg.attach(part1)

#超文本内容,放有图片,注意src路径,此为放在同一目录中
html = '<div><img src="cid:image1">亲爱的</div>'
#一定要设置邮件格式,否则可能会乱码,当时接手别人手中没加邮件格式的项目,坑了我半天
part2 = MIMEText(html, 'html', 'utf-8')
#添加到邮件中
msg.attach(part2)

#图片放到邮件中
# 指定图片为当前目录
fp = open('test.png', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
# 定义图片 ID,在 HTML 文本中引用
msgImage.add_header('Content-ID', '<image1>')
msg.attach(msgImage)

#加入附件
att2 = MIMEText('这是附件里的文字', 'base64', 'utf-8')
att2["Content-Type"] = 'application/octet-stream'
#设置附件名为runoob.txt
att2["Content-Disposition"] = 'attachment; filename="runoob.txt"'
#附件放在邮件中
msg.attach(att2)

#非ssl方式的smtp(简单邮件发送协议),下面注释为ssl方式的smtp
smtp = smtplib.SMTP()
# smtp = smtplib.SMTP_SSL()

try:
 #连接主机地址
 smtp.connect('mail.yto.net.cn:25')
 #登录邮箱,需要邮箱账号,密码
 smtp.login('XXXXXXXX.qq.com','234123')
 #发送邮件,需要登录的邮箱号,发送方的邮箱号,发送内容
 smtp.sendmail('XXXXXXXX.qq.com', '1212112@qq.com', msg.as_string())
 #退出邮箱
 smtp.quit()
 print 'The mail is sended successly.'
except smtplib.SMTPException,e:
 print "Error: 无法发送邮件",e

发送结果:

python发送邮件实例分享

注意点:当自己邮箱作为邮件发送方时,注意邮件服务器的设置里把smtp服务打开

python发送邮件实例分享

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用MELIAE分析程序内存占用实例
Feb 18 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
Jun 28 Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
python同时遍历数组的索引和值的实例
Nov 15 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
Python3 sys.argv[ ]用法详解
Oct 24 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
Django如何使用redis作为缓存
May 21 Python
Pycharm修改python路径过程图解
May 22 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
Nov 01 Python
Python分治法定义与应用实例详解
Jul 28 #Python
Python更新数据库脚本两种方法及对比介绍
Jul 27 #Python
Python判断文件或文件夹是否存在的三种方法
Jul 27 #Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
Jul 27 #Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 #Python
python django 增删改查操作 数据库Mysql
Jul 27 #Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 #Python
You might like
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
Python中非常实用的一些功能和函数分享
2015/02/14 Python
python对DICOM图像的读取方法详解
2017/07/17 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
在线服装零售商:SheIn
2016/07/22 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
Sony C++笔试题
2013/03/10 面试题
存储过程和sql语句的优缺点
2014/07/02 面试题
市场部专员岗位职责
2013/11/30 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
一岗双责责任书
2014/04/15 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
村干部任职承诺书
2015/01/21 职场文书
小学英语课教学反思
2016/02/15 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
Python中for后接else的语法使用
2021/05/18 Python
Java数组详细介绍及相关工具类
2022/04/14 Java/Android