python发送邮件实例分享
作者:RGC 时间:2021-07-17 23:14:23
为了更好的理解邮件发送功能的实现,要先了解邮件发送系统的大致流程。首先 电子邮件之间的相互发送接受就像 邮局邮件发送一样,从一个站点(邮件发送服务器)到目的地站点(邮件接收服务器),然后目的地站点处理收到的邮件,并发送给接受人。每个邮件服务器即担任发送也担任接受邮件,并且每个服务器地址,端口号,配置等也不同。
其实发送邮件的流程就 两部:
第一:写邮件
写好发送方,接受方
写好主题
写好正文(包括附件,图片等)
把信件整理在一起
第二:发送邮件
连接发送邮件服务器
登录邮箱
发送邮件
退出邮箱
代码部分:
# -*- 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
发送结果:
注意点:当自己邮箱作为邮件发送方时,注意邮件服务器的设置里把smtp服务打开
标签:python,发送邮件
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
如何解决客户机页面刷新时连接不上数据库问题?
2009-12-16 18:24:00
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2021-01-15 12:48:34
ASP中Cache技术的应用
2007-09-28 12:41:00
Python+matplotlib绘制不同大小和颜色散点图实例
2021-12-02 08:50:32
![](https://img.aspxhome.com/file/2023/9/98809_0s.png)
python中eval与int的区别浅析
2023-06-24 00:21:08
如何通过PHP实现Des加密算法代码实例
2023-10-08 09:41:55
热门问题python爬虫的效率如何提高
2023-06-11 03:21:40
![](https://img.aspxhome.com/file/2023/0/108160_0s.jpg)
在MAC上搭建python数据分析开发环境
2022-04-27 21:44:10
深入理解python中的闭包和装饰器
2023-03-20 06:27:48
![](https://img.aspxhome.com/file/2023/6/79766_0s.jpg)
Python 使用 docopt 解析json参数文件过程讲解
2021-06-30 21:44:00
![](https://img.aspxhome.com/file/2023/9/93609_0s.png)
XML轻松学习手册(3)XML的术语
2008-09-05 17:17:00
python学习--使用QQ邮箱发送邮件代码实例
2023-10-29 23:43:59
![](https://img.aspxhome.com/file/2023/4/76164_0s.png)
tensorflow建立一个简单的神经网络的方法
2022-09-27 17:01:51
![](https://img.aspxhome.com/file/2023/1/97381_0s.png)
Pycharm学习教程(3) 代码运行调试
2023-04-11 00:01:18
![](https://img.aspxhome.com/file/2023/3/109453_0s.png)
python 爬取吉首大学网站成绩单
2023-08-02 05:57:13
![](https://img.aspxhome.com/file/2023/6/61216_0s.png)
用蜜罐来阻止垃圾评论
2007-11-06 12:35:00
![](https://img.aspxhome.com/file/UploadPic/200711/6/200711612588568s.gif)
tensorflow mnist 数据加载实现并画图效果
2023-10-20 15:07:33
![](https://img.aspxhome.com/file/2023/3/90653_0s.png)
Python中pandas模块DataFrame创建方法示例
2022-07-19 03:06:09
Python学习小技巧总结
2021-09-21 09:28:49
各种鼠标经过图片边框加粗效果整理
2007-09-29 21:43:00