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 相关文章推荐
合并百度影音的离线数据( with python 2.3)
Aug 04 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
Oct 14 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
Python中调用其他程序的方式详解
Aug 06 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
Python代码注释规范代码实例解析
Aug 14 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
用python删除文件夹中的重复图片(图片去重)
May 12 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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 XPath对XML文件查找及修改实现代码
2011/07/27 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
python3.7.0的安装步骤
2018/08/27 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
TensorFlow的reshape操作 tf.reshape的实现
2020/04/19 Python
python设置中文界面实例方法
2020/10/27 Python
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
JAVA和C++的区别
2013/10/06 面试题
实习生自荐信范文
2013/11/13 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
委托证明的格式
2014/01/10 职场文书
公司担保书格式范文
2014/05/12 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书