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中用memcached来减少数据库查询次数的教程
Apr 07 Python
python开启多个子进程并行运行的方法
Apr 18 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
python tornado微信开发入门代码
Aug 24 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
Python3列表List入门知识附实例
Feb 09 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
Django values()和value_list()的使用
Mar 31 Python
python为什么会环境变量设置不成功
Jun 23 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 Python
python 如何在测试中使用 Mock
Mar 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
Python中zip()函数用法实例教程
2014/07/31 Python
python中使用mysql数据库详细介绍
2015/03/27 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
python中单下划线_的常见用法总结
2018/07/10 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
python+tkinter实现学生管理系统
2019/08/20 Python
浅谈Python type的使用
2019/11/19 Python
linux 下selenium chrome使用详解
2020/04/02 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
Python项目打包成二进制的方法
2020/12/30 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
销售人员自我评价怎么写
2013/09/19 职场文书
法院授权委托书格式
2014/09/28 职场文书
会计岗位职责
2015/02/03 职场文书
开展警示教育活动总结
2015/05/09 职场文书
酒店员工管理制度
2015/08/05 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android