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的包管理器pip更换软件源的方法详解
Jun 20 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
Python 中的Selenium异常处理实例代码
May 03 Python
Python实现查看系统启动项功能示例
May 10 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
Python 经典算法100及解析(小结)
Sep 13 Python
Python基础之高级变量类型实例详解
Jan 03 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
Tensorflow之梯度裁剪的实现示例
Mar 08 Python
keras打印loss对权重的导数方式
Jun 10 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 Python
python性能测试工具locust的使用
Dec 28 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实现微信发红包
2015/12/05 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
php 浮点数比较方法详解
2017/05/05 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
使用js 设置url参数
2013/07/08 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
python编程嵌套函数实例代码
2018/02/11 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
python binascii 进制转换实例
2019/06/12 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
django中的图片验证码功能
2019/09/18 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
python和php哪个容易学
2020/06/19 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
大学同学十年聚会感言
2014/02/21 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
在Django中使用MQTT的方法
2021/05/10 Python