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去掉字符串中空格的方法
Mar 11 Python
在Python中操作字典之update()方法的使用
May 22 Python
Python 通过URL打开图片实例详解
Jun 01 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
django的ORM操作 增加和查询
Jul 26 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
python 用opencv实现霍夫线变换
Nov 27 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 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如何编写易读的代码
2007/07/10 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
Python正则表达式和元字符详解
2018/11/29 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Python Pandas 箱线图的实现
2019/07/23 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Python中qutip用法示例详解
2020/10/02 Python
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
师范生自荐信
2013/10/27 职场文书
直接有效的自我评价
2014/01/11 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
《争吵》教学反思
2014/02/15 职场文书
新年联欢会主持词
2014/03/27 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
教师考核材料
2014/05/21 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
初三毕业评语
2014/12/26 职场文书
政工师工作总结2015
2015/05/26 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript