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 05 Python
Python中使用hashlib模块处理算法的教程
Apr 28 Python
Python自定义类的数组排序实现代码
Aug 28 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
浅谈django channels 路由误导
May 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操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
PHP实现简易图形计算器
2020/08/28 PHP
javascript学习之闭包分析
2010/12/02 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
2011/09/29 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
vue如何截取字符串
2019/05/06 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
Python3匿名函数用法示例
2018/07/25 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
JBL英国官网:JBL UK
2018/07/04 全球购物
婚礼证婚人证婚词
2014/01/13 职场文书
入党政审材料范文
2014/12/24 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
《观潮》教学反思
2016/02/17 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers