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批量修改文件后缀的方法
Jan 26 Python
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
跟老齐学Python之玩转字符串(2)更新篇
Sep 28 Python
python中list常用操作实例详解
Jun 03 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
python实现图片识别汽车功能
Nov 30 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
Python遍历文件夹 处理json文件的方法
Jan 22 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
8种常用的Python工具
Aug 05 Python
用Python selenium实现淘宝抢单机器人
Jun 18 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
杏林同学录(九)
2006/10/09 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
javascript每日必学之多态
2016/02/23 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
python学习入门细节知识点
2018/03/29 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
国际政治个人自荐信范文
2013/11/26 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
工作失误检讨书范文
2015/01/26 职场文书
2015年防汛工作总结
2015/05/15 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
公司董事任命书
2015/09/21 职场文书
Go使用协程交替打印字符
2021/04/29 Golang