Python基于smtplib模块发送邮件代码实例


Posted in Python onMay 29, 2020

smtplib模块负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。

email模块负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

email模块下有mime包,mime英文全称为“Multipurpose Internet Mail Extensions”,即多用途互联网邮件扩展,是目前互联网电子邮件普遍遵循的邮件技术规范。

该mime包下常用的有三个模块:text,image,multpart。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

#邮件服务器信息
smtp_server = "smtp.qq.com"
port = 465 # For starttls
sender_email = "12345689@qq.com"
password="" #get password from mailsetting

#发送邮件信息,可以发送给多个收件人
receivers=["12345689@163.com","12345689@qq.com"]
subject="This is import Python SMTP 邮件(文件传输) 多媒体测试"

# message = MIMEText(text, "plain", "utf-8") #文本邮件
message = MIMEMultipart()
message["Subject"] = Header(subject, "utf-8")
message["from"] = sender_email
message["to"] = ",".join(receivers)
# 邮件正文内容
text="""
Dear Sir:
how are you ? \n
for detail information pls refer to attach1。\n
The files you need are as followed.\n
If you have any concern pls let me known.\n
enjoy your weekend.\n
BEST REGARDS \n
"""
# message.attach(MIMEText('for detail information pls refer to attach1。\n The files you need are as followed. \n If you have any concern pls let me known. \n enjoy your weekend', 'plain', 'utf-8')
message.attach(MIMEText(text,'plain','utf-8'))

# 构造附件1
attach_file1='IMG1965.JPG'

attach1 = MIMEText(open(attach_file1, 'rb').read(), 'base64', 'utf-8')
attach1["Content-Type"] = 'application/octet-stream'
attach1["Content-Disposition"] = 'attachment; filename={0}'.format(attach_file1)
message.attach(attach1)

# 构造附件2
attach_file2='YLJ.jpg'
attach2 = MIMEText(open(attach_file2, 'rb').read(), 'base64', 'utf-8')
attach2["Content-Type"] = 'application/octet-stream'
attach2["Content-Disposition"] = 'attachment; filename={0}'.format(attach_file2)
message.attach(attach2)

# Try to log in to server and send email
# server = smtplib.SMTP_SSL(smtp_server,port)
server = smtplib.SMTP_SSL(smtp_server,port)

try:
  server.login(sender_email, password)
  server.sendmail(sender_email,receivers,message.as_string())
  print("邮件发送成功!!!")
  print("Mail with {0} & {1} has been send to {2} successfully.".format(attach_file1,attach_file2,receivers))
except Exception as e:
  # Print any error messages to stdout
  print("Error: 无法发送邮件")
  print(e)
finally:
  server.quit()

结果

邮件发送成功!!!

Mail with IMG1965.JPG & IMG1963.jpg has been send to ['12345689@163.com', '12345689@qq.com'] successfully.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python统计日志中每个IP出现次数的方法
Jul 06 Python
python制作websocket服务器实例分享
Nov 20 Python
Python用threading实现多线程详解
Feb 03 Python
Python进阶_关于命名空间与作用域(详解)
May 29 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 Python
python pandas写入excel文件的方法示例
Jun 25 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
python图片指定区域替换img.paste函数的使用
Apr 09 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 Python
Django通过json格式收集主机信息
May 29 #Python
Python小白不正确的使用类变量实例
May 29 #Python
python小白切忌乱用表达式
May 29 #Python
Python爬虫实现百度翻译功能过程详解
May 29 #Python
Django中的模型类设计及展示示例详解
May 29 #Python
如何理解Python中包的引入
May 29 #Python
浅谈django channels 路由误导
May 28 #Python
You might like
PHP备份/还原MySQL数据库的代码
2011/01/06 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
PHP扩展开发入门教程
2015/02/26 PHP
帝国cms常用标签汇总
2015/07/06 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
办公室主任竞聘演讲稿
2014/05/15 职场文书
安全宣传标语口号
2014/06/06 职场文书
节能环保口号
2014/06/12 职场文书
意向书范本
2014/07/29 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python