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中的map、reduce和filter浅析
Apr 26 Python
Python使用chardet判断字符编码
May 09 Python
python实现DES加密解密方法实例详解
Jun 30 Python
node.js获取参数的常用方法(总结)
May 29 Python
Python中将dataframe转换为字典的实例
Apr 13 Python
将Python字符串生成PDF的实例代码详解
May 17 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 Python
python爬虫请求头设置代码
Jul 28 Python
python中uuid模块实例浅析
Dec 29 Python
python爬取新闻门户网站的示例
Apr 25 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+ajax实现文章自动保存的方法
2014/12/30 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
构造函数+原型模式构造js自定义对象(最通用)
2014/05/12 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
Windows下安装python2和python3多版本教程
2017/03/30 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
python线程的几种创建方式详解
2019/08/29 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
Python如何生成xml文件
2020/06/04 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
大学生党员承诺书
2014/05/20 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
办护照工作证明
2014/10/01 职场文书
护士年终考核评语
2014/12/31 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
详解Redis主从复制实践
2021/05/19 Redis
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript